summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/frontend.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/global.gitlab-ci.yml6
-rw-r--r--.rubocop.yml2
-rw-r--r--app/assets/javascripts/pages/projects/graphs/charts/index.js4
-rw-r--r--app/services/metrics/dashboard/base_service.rb6
-rw-r--r--changelogs/unreleased/self-monitoring-env.yml5
-rw-r--r--doc/development/pipelines.md8
-rw-r--r--lib/gitlab/database_importers/self_monitoring/project/create_service.rb12
-rw-r--r--lib/gitlab/diff/highlight_cache.rb6
-rw-r--r--lib/gitlab/metrics/dashboard/finder.rb2
-rw-r--r--locale/gitlab.pot3
-rw-r--r--spec/controllers/groups/avatars_controller_spec.rb2
-rw-r--r--spec/controllers/groups/boards_controller_spec.rb10
-rw-r--r--spec/controllers/groups/children_controller_spec.rb8
-rw-r--r--spec/controllers/groups/clusters/applications_controller_spec.rb16
-rw-r--r--spec/controllers/groups/clusters_controller_spec.rb4
-rw-r--r--spec/controllers/groups/group_links_controller_spec.rb14
-rw-r--r--spec/controllers/groups/group_members_controller_spec.rb34
-rw-r--r--spec/controllers/groups/labels_controller_spec.rb2
-rw-r--r--spec/controllers/groups/milestones_controller_spec.rb24
-rw-r--r--spec/controllers/groups/runners_controller_spec.rb24
-rw-r--r--spec/controllers/groups/settings/ci_cd_controller_spec.rb12
-rw-r--r--spec/controllers/groups/variables_controller_spec.rb4
-rw-r--r--spec/controllers/projects/issues_controller_spec.rb6
-rw-r--r--spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb19
-rw-r--r--spec/lib/gitlab/diff/highlight_cache_spec.rb7
-rw-r--r--spec/support/helpers/dns_helpers.rb4
-rw-r--r--spec/support/shared_contexts/policies/project_policy_table_shared_context.rb164
29 files changed, 302 insertions, 110 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6a06f3ca325..1b76a3088fb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,4 +1,4 @@
-image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.34"
+image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-9.6-graphicsmagick-1.3.34"
stages:
- sync
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml
index 50358d65513..c8ad888dc08 100644
--- a/.gitlab/ci/frontend.gitlab-ci.yml
+++ b/.gitlab/ci/frontend.gitlab-ci.yml
@@ -78,7 +78,7 @@
- .default-retry
- .default-before_script
- .assets-compile-cache
- image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.16-graphicsmagick-1.3.34-docker-19.03.1
+ image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-graphicsmagick-1.3.34-docker-19.03.1
stage: prepare
services:
- docker:19.03.0-dind
diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml
index 8253e74b2e8..f5b6a353079 100644
--- a/.gitlab/ci/global.gitlab-ci.yml
+++ b/.gitlab/ci/global.gitlab-ci.yml
@@ -9,6 +9,8 @@
- unknown_failure
- api_failure
- runner_system_failure
+ - job_execution_timeout
+ - stuck_or_timeout_failure
.default-before_script:
before_script:
@@ -203,7 +205,7 @@
- name: redis:alpine
.use-pg10:
- image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.34"
+ image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-10-graphicsmagick-1.3.34"
services:
- name: postgres:10.9
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
@@ -217,7 +219,7 @@
- name: elasticsearch:6.4.2
.use-pg10-ee:
- image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.16-postgresql-10-graphicsmagick-1.3.34"
+ image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-10-graphicsmagick-1.3.34"
services:
- name: postgres:10.9
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
diff --git a/.rubocop.yml b/.rubocop.yml
index 9ebb8168a4f..e4d16d53193 100644
--- a/.rubocop.yml
+++ b/.rubocop.yml
@@ -343,6 +343,8 @@ RSpec/HaveGitlabHttpStatus:
- 'ee/spec/controllers/*.rb'
- 'spec/controllers/projects/**/*.rb'
- 'ee/spec/controllers/projects/**/*.rb'
+ - 'spec/controllers/groups/**/*.rb'
+ - 'ee/spec/controllers/groups/**/*.rb'
- 'spec/requests/*.rb'
- 'ee/spec/requests/*.rb'
diff --git a/app/assets/javascripts/pages/projects/graphs/charts/index.js b/app/assets/javascripts/pages/projects/graphs/charts/index.js
index 314519ee442..1b94fb06107 100644
--- a/app/assets/javascripts/pages/projects/graphs/charts/index.js
+++ b/app/assets/javascripts/pages/projects/graphs/charts/index.js
@@ -1,7 +1,5 @@
import $ from 'jquery';
import Chart from 'chart.js';
-import _ from 'underscore';
-
import { barChartOptions, pieChartOptions } from '~/lib/utils/chart_utils';
document.addEventListener('DOMContentLoaded', () => {
@@ -40,7 +38,7 @@ document.addEventListener('DOMContentLoaded', () => {
backgroundColor: 'rgba(220,220,220,0.5)',
borderColor: 'rgba(220,220,220,1)',
borderWidth: 1,
- data: _.values(data),
+ data: Object.values(data),
},
],
});
diff --git a/app/services/metrics/dashboard/base_service.rb b/app/services/metrics/dashboard/base_service.rb
index 40c015dff9c..3cd7d8437b1 100644
--- a/app/services/metrics/dashboard/base_service.rb
+++ b/app/services/metrics/dashboard/base_service.rb
@@ -46,10 +46,14 @@ module Metrics
# Returns a new dashboard Hash, supplemented with DB info
def process_dashboard
::Gitlab::Metrics::Dashboard::Processor
- .new(project, raw_dashboard, sequence, params)
+ .new(project, raw_dashboard, sequence, process_params)
.process
end
+ def process_params
+ params
+ end
+
# @return [String] Relative filepath of the dashboard yml
def dashboard_path
params[:dashboard_path]
diff --git a/changelogs/unreleased/self-monitoring-env.yml b/changelogs/unreleased/self-monitoring-env.yml
new file mode 100644
index 00000000000..1e8ec2b83ed
--- /dev/null
+++ b/changelogs/unreleased/self-monitoring-env.yml
@@ -0,0 +1,5 @@
+---
+title: Create an environment for self monitoring project
+merge_request: 24403
+author:
+type: added
diff --git a/doc/development/pipelines.md b/doc/development/pipelines.md
index af278dafb76..42b4e7385dc 100644
--- a/doc/development/pipelines.md
+++ b/doc/development/pipelines.md
@@ -42,9 +42,9 @@ The current stages are:
## Default image
The default image is currently
-`registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.16-postgresql-9.6-graphicsmagick-1.3.34`.
+`registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6.5-golang-1.12-git-2.24-lfs-2.9-chrome-73.0-node-12.x-yarn-1.21-postgresql-9.6-graphicsmagick-1.3.34`.
-It includes Ruby 2.6.5, Go 1.12, Git 2.24, Git LFS 2.9, Chrome 73, Node 12, Yarn 1.16,
+It includes Ruby 2.6.5, Go 1.12, Git 2.24, Git LFS 2.9, Chrome 73, Node 12, Yarn 1.21,
PostgreSQL 9.6, and Graphics Magick 1.3.33.
The images used in our pipelines are configured in the
@@ -71,8 +71,8 @@ These common definitions are:
- `.default-tags`: Ensures a job has the `gitlab-org` tag to ensure it's using
our dedicated runners.
-- `.default-retry`: Allows a job to retry upon `unknown_failure`, `api_failure`,
- `runner_system_failure`.
+- `.default-retry`: Allows a job to [retry](../ci/yaml/README.md#retry) upon `unknown_failure`, `api_failure`,
+ `runner_system_failure`, `job_execution_timeout`, or `stuck_or_timeout_failure`.
- `.default-before_script`: Allows a job to use a default `before_script` definition
suitable for Ruby/Rails tasks that may need a database running (e.g. tests).
- `.default-cache`: Allows a job to use a default `cache` definition suitable for
diff --git a/lib/gitlab/database_importers/self_monitoring/project/create_service.rb b/lib/gitlab/database_importers/self_monitoring/project/create_service.rb
index 49adc93fdc8..ef2e4055c62 100644
--- a/lib/gitlab/database_importers/self_monitoring/project/create_service.rb
+++ b/lib/gitlab/database_importers/self_monitoring/project/create_service.rb
@@ -15,6 +15,7 @@ module Gitlab
:create_group,
:create_project,
:save_project_id,
+ :create_environment,
:add_prometheus_manual_configuration,
:track_event
@@ -80,6 +81,17 @@ module Gitlab
end
end
+ def create_environment(result)
+ environment = ::Environment.new(project_id: result[:project].id, name: 'production')
+
+ if environment.save
+ success(result)
+ else
+ log_error("Could not create environment for the Self monitoring project. Errors: %{errors}" % { errors: environment.errors.full_messages })
+ error(_('Could not create environment'))
+ end
+ end
+
def add_prometheus_manual_configuration(result)
return success(result) unless prometheus_enabled?
return success(result) unless prometheus_listen_address.present?
diff --git a/lib/gitlab/diff/highlight_cache.rb b/lib/gitlab/diff/highlight_cache.rb
index 0cb8020bacb..0a8fbb9a673 100644
--- a/lib/gitlab/diff/highlight_cache.rb
+++ b/lib/gitlab/diff/highlight_cache.rb
@@ -93,8 +93,6 @@ module Gitlab
#
redis.expire(key, EXPIRATION)
end
-
- record_metrics(redis.memory("USAGE", key))
end
# Subsequent read_file calls would need the latest cache.
@@ -103,10 +101,6 @@ module Gitlab
clear_memoization(:cacheable_files)
end
- def record_metrics(memory_usage)
- self.class.gitlab_redis_diff_caching_memory_usage_bytes.observe({}, memory_usage)
- end
-
def file_paths
strong_memoize(:file_paths) do
diff_files.collect(&:file_path)
diff --git a/lib/gitlab/metrics/dashboard/finder.rb b/lib/gitlab/metrics/dashboard/finder.rb
index 268112f33a9..0374484d357 100644
--- a/lib/gitlab/metrics/dashboard/finder.rb
+++ b/lib/gitlab/metrics/dashboard/finder.rb
@@ -34,6 +34,8 @@ module Gitlab
# cluster, one of [:admin, :project, :group]
# @param options - grafana_url [String] URL pointing
# to a grafana dashboard panel
+ # @param options - prometheus_alert_id [Integer] ID of
+ # a PrometheusAlert. For dashboard embeds.
# @return [Hash]
def find(project, user, options = {})
service_for(options)
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index fba3dd8b55d..9062f1fc5ac 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -5379,6 +5379,9 @@ msgstr ""
msgid "Could not create Wiki Repository at this time. Please try again later."
msgstr ""
+msgid "Could not create environment"
+msgstr ""
+
msgid "Could not create group"
msgstr ""
diff --git a/spec/controllers/groups/avatars_controller_spec.rb b/spec/controllers/groups/avatars_controller_spec.rb
index 7fffafaa2d4..1229328000b 100644
--- a/spec/controllers/groups/avatars_controller_spec.rb
+++ b/spec/controllers/groups/avatars_controller_spec.rb
@@ -25,6 +25,6 @@ describe Groups::AvatarsController do
delete :destroy, params: { group_id: group }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
diff --git a/spec/controllers/groups/boards_controller_spec.rb b/spec/controllers/groups/boards_controller_spec.rb
index e4232c2c1ab..79edfd69429 100644
--- a/spec/controllers/groups/boards_controller_spec.rb
+++ b/spec/controllers/groups/boards_controller_spec.rb
@@ -33,7 +33,7 @@ describe Groups::BoardsController do
it 'returns a not found 404 response' do
list_boards
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'text/html'
end
end
@@ -76,7 +76,7 @@ describe Groups::BoardsController do
it 'returns a not found 404 response' do
list_boards format: :json
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'application/json'
end
end
@@ -111,7 +111,7 @@ describe Groups::BoardsController do
it 'returns a not found 404 response' do
read_board board: board
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'text/html'
end
end
@@ -148,7 +148,7 @@ describe Groups::BoardsController do
it 'returns a not found 404 response' do
read_board board: board, format: :json
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(response.content_type).to eq 'application/json'
end
end
@@ -160,7 +160,7 @@ describe Groups::BoardsController do
read_board board: another_board
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
diff --git a/spec/controllers/groups/children_controller_spec.rb b/spec/controllers/groups/children_controller_spec.rb
index 171326f3f8b..a8921300e6b 100644
--- a/spec/controllers/groups/children_controller_spec.rb
+++ b/spec/controllers/groups/children_controller_spec.rb
@@ -142,7 +142,7 @@ describe Groups::ChildrenController do
get :index, params: { group_id: subgroup.to_param, filter: 'test' }, format: :json
- expect(response).to have_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'returns an array with one element when only one result is matched' do
@@ -185,7 +185,7 @@ describe Groups::ChildrenController do
get :index, params: { group_id: group.to_param, filter: 'filter', per_page: 3 }, format: :json
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
it 'includes pagination headers' do
@@ -316,7 +316,7 @@ describe Groups::ChildrenController do
it 'correctly calculates the counts' do
get :index, params: { group_id: group.to_param, sort: 'id_asc', page: 2 }, format: :json
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -328,7 +328,7 @@ describe Groups::ChildrenController do
get :index, params: { group_id: group }, format: :json
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
diff --git a/spec/controllers/groups/clusters/applications_controller_spec.rb b/spec/controllers/groups/clusters/applications_controller_spec.rb
index 21533d1c89a..bab9e64cfdb 100644
--- a/spec/controllers/groups/clusters/applications_controller_spec.rb
+++ b/spec/controllers/groups/clusters/applications_controller_spec.rb
@@ -43,7 +43,7 @@ describe Groups::Clusters::ApplicationsController do
expect(ClusterInstallAppWorker).to receive(:perform_async).with(application, anything).once
expect { subject }.to change { current_application.count }
- expect(response).to have_http_status(:no_content)
+ expect(response).to have_gitlab_http_status(:no_content)
expect(cluster.application_helm).to be_scheduled
end
@@ -54,7 +54,7 @@ describe Groups::Clusters::ApplicationsController do
it 'return 404' do
expect { subject }.not_to change { current_application.count }
- expect(response).to have_http_status(:not_found)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -62,7 +62,7 @@ describe Groups::Clusters::ApplicationsController do
let(:application) { 'unkwnown-app' }
it 'return 404' do
- is_expected.to have_http_status(:not_found)
+ is_expected.to have_gitlab_http_status(:not_found)
end
end
@@ -72,7 +72,7 @@ describe Groups::Clusters::ApplicationsController do
end
it 'returns 400' do
- is_expected.to have_http_status(:bad_request)
+ is_expected.to have_gitlab_http_status(:bad_request)
end
end
end
@@ -107,7 +107,7 @@ describe Groups::Clusters::ApplicationsController do
it "schedules an application update" do
expect(ClusterPatchAppWorker).to receive(:perform_async).with(application.name, anything).once
- is_expected.to have_http_status(:no_content)
+ is_expected.to have_gitlab_http_status(:no_content)
expect(cluster.application_cert_manager).to be_scheduled
end
@@ -118,13 +118,13 @@ describe Groups::Clusters::ApplicationsController do
cluster.destroy!
end
- it { is_expected.to have_http_status(:not_found) }
+ it { is_expected.to have_gitlab_http_status(:not_found) }
end
context 'when application is unknown' do
let(:application_name) { 'unkwnown-app' }
- it { is_expected.to have_http_status(:not_found) }
+ it { is_expected.to have_gitlab_http_status(:not_found) }
end
context 'when application is already scheduled' do
@@ -132,7 +132,7 @@ describe Groups::Clusters::ApplicationsController do
application.make_scheduled!
end
- it { is_expected.to have_http_status(:bad_request) }
+ it { is_expected.to have_gitlab_http_status(:bad_request) }
end
end
diff --git a/spec/controllers/groups/clusters_controller_spec.rb b/spec/controllers/groups/clusters_controller_spec.rb
index cf90d388a61..cdb45e1946e 100644
--- a/spec/controllers/groups/clusters_controller_spec.rb
+++ b/spec/controllers/groups/clusters_controller_spec.rb
@@ -654,7 +654,7 @@ describe Groups::ClustersController do
go(format: :json)
cluster.reload
- expect(response).to have_http_status(:no_content)
+ expect(response).to have_gitlab_http_status(:no_content)
expect(cluster.enabled).to be_falsey
expect(cluster.name).to eq('my-new-cluster-name')
expect(cluster).not_to be_managed
@@ -674,7 +674,7 @@ describe Groups::ClustersController do
it 'rejects changes' do
go(format: :json)
- expect(response).to have_http_status(:bad_request)
+ expect(response).to have_gitlab_http_status(:bad_request)
end
end
end
diff --git a/spec/controllers/groups/group_links_controller_spec.rb b/spec/controllers/groups/group_links_controller_spec.rb
index fc015471d5c..c062de468fc 100644
--- a/spec/controllers/groups/group_links_controller_spec.rb
+++ b/spec/controllers/groups/group_links_controller_spec.rb
@@ -100,7 +100,7 @@ describe Groups::GroupLinksController do
it 'renders 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -113,7 +113,7 @@ describe Groups::GroupLinksController do
it 'renders 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -126,7 +126,7 @@ describe Groups::GroupLinksController do
it 'renders 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -168,7 +168,7 @@ describe Groups::GroupLinksController do
it 'renders 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -180,7 +180,7 @@ describe Groups::GroupLinksController do
it 'renders 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -210,7 +210,7 @@ describe Groups::GroupLinksController do
it 'renders 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -222,7 +222,7 @@ describe Groups::GroupLinksController do
it 'renders 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/groups/group_members_controller_spec.rb b/spec/controllers/groups/group_members_controller_spec.rb
index 1c8a2bd160d..f69d0602404 100644
--- a/spec/controllers/groups/group_members_controller_spec.rb
+++ b/spec/controllers/groups/group_members_controller_spec.rb
@@ -13,7 +13,7 @@ describe Groups::GroupMembersController do
it 'renders index with 200 status code' do
get :index, params: { group_id: group }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template(:index)
end
@@ -105,7 +105,7 @@ describe Groups::GroupMembersController do
access_level: Gitlab::Access::GUEST
}
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(:forbidden)
expect(group.users).not_to include group_user
end
end
@@ -173,7 +173,7 @@ describe Groups::GroupMembersController do
it 'returns 403' do
delete :destroy, params: { group_id: group, id: 42 }
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(:forbidden)
end
end
@@ -186,7 +186,7 @@ describe Groups::GroupMembersController do
it 'returns 403' do
delete :destroy, params: { group_id: group, id: member }
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(:forbidden)
expect(group.members).to include member
end
end
@@ -223,7 +223,7 @@ describe Groups::GroupMembersController do
it 'returns 404' do
delete :leave, params: { group_id: group }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -244,7 +244,7 @@ describe Groups::GroupMembersController do
it 'supports json request' do
delete :leave, params: { group_id: group }, format: :json
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(json_response['notice']).to eq "You left the \"#{group.name}\" group."
end
end
@@ -257,7 +257,7 @@ describe Groups::GroupMembersController do
it 'cannot removes himself from the group' do
delete :leave, params: { group_id: group }
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(:forbidden)
end
end
@@ -304,7 +304,7 @@ describe Groups::GroupMembersController do
it 'returns 403' do
post :approve_access_request, params: { group_id: group, id: 42 }
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(:forbidden)
end
end
@@ -317,7 +317,7 @@ describe Groups::GroupMembersController do
it 'returns 403' do
post :approve_access_request, params: { group_id: group, id: member }
- expect(response).to have_gitlab_http_status(403)
+ expect(response).to have_gitlab_http_status(:forbidden)
expect(group.members).not_to include member
end
end
@@ -348,7 +348,7 @@ describe Groups::GroupMembersController do
it 'is successful' do
get :index, params: { group_id: group }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -356,7 +356,7 @@ describe Groups::GroupMembersController do
it 'is successful' do
post :create, params: { group_id: group, users: user, access_level: Gitlab::Access::GUEST }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -370,7 +370,7 @@ describe Groups::GroupMembersController do
},
format: :js
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -378,7 +378,7 @@ describe Groups::GroupMembersController do
it 'is successful' do
delete :destroy, params: { group_id: group, id: membership }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -388,7 +388,7 @@ describe Groups::GroupMembersController do
post :request_access, params: { group_id: group }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -397,7 +397,7 @@ describe Groups::GroupMembersController do
access_request = create(:group_member, :access_request, group: group)
post :approve_access_request, params: { group_id: group, id: access_request }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -407,7 +407,7 @@ describe Groups::GroupMembersController do
delete :leave, params: { group_id: group }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
@@ -415,7 +415,7 @@ describe Groups::GroupMembersController do
it 'is successful' do
post :resend_invite, params: { group_id: group, id: membership }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
end
end
end
diff --git a/spec/controllers/groups/labels_controller_spec.rb b/spec/controllers/groups/labels_controller_spec.rb
index d4780fa2675..90f91a4ff72 100644
--- a/spec/controllers/groups/labels_controller_spec.rb
+++ b/spec/controllers/groups/labels_controller_spec.rb
@@ -53,7 +53,7 @@ describe Groups::LabelsController do
post :toggle_subscription, params: { group_id: group.to_param, id: label.to_param }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
diff --git a/spec/controllers/groups/milestones_controller_spec.rb b/spec/controllers/groups/milestones_controller_spec.rb
index 068ed7fd380..afb950bc538 100644
--- a/spec/controllers/groups/milestones_controller_spec.rb
+++ b/spec/controllers/groups/milestones_controller_spec.rb
@@ -42,7 +42,7 @@ describe Groups::MilestonesController do
get :index, params: { group_id: group.to_param }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to include(milestone.title)
end
@@ -74,7 +74,7 @@ describe Groups::MilestonesController do
get :index, params: { group_id: group.to_param }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to include(milestone.title)
end
end
@@ -84,7 +84,7 @@ describe Groups::MilestonesController do
it 'does not return milestone' do
get :index, params: { group_id: public_group.to_param }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.body).not_to include(private_milestone.title)
end
end
@@ -125,7 +125,7 @@ describe Groups::MilestonesController do
it 'returns the milestone' do
get :index, params: { group_id: public_group.to_param }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to include(private_milestone.title)
end
end
@@ -141,7 +141,7 @@ describe Groups::MilestonesController do
it 'shows subgroup milestones that user has access to' do
get :index, params: { group_id: group.to_param }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to include(group_milestone.title)
expect(response.body).to include(sub_project_milestone.title)
expect(response.body).to include(subgroup_milestone.title)
@@ -157,7 +157,7 @@ describe Groups::MilestonesController do
it 'does not show subgroup milestones' do
get :index, params: { group_id: group.to_param }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.body).to include(group_milestone.title)
expect(response.body).not_to include(sub_project_milestone.title)
expect(response.body).not_to include(subgroup_milestone.title)
@@ -179,7 +179,7 @@ describe Groups::MilestonesController do
expect(milestones.count).to eq(2)
expect(milestones.first["title"]).to eq("group milestone")
expect(milestones.second["title"]).to eq("legacy")
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response.content_type).to eq 'application/json'
end
@@ -330,7 +330,7 @@ describe Groups::MilestonesController do
it 'does not redirect' do
get :index, params: { group_id: group.to_param }
- expect(response).not_to have_gitlab_http_status(301)
+ expect(response).not_to have_gitlab_http_status(:moved_permanently)
end
end
@@ -349,7 +349,7 @@ describe Groups::MilestonesController do
it 'does not redirect' do
get :show, params: { group_id: group.to_param, id: title }
- expect(response).not_to have_gitlab_http_status(301)
+ expect(response).not_to have_gitlab_http_status(:moved_permanently)
end
end
@@ -439,7 +439,7 @@ describe Groups::MilestonesController do
milestone: { title: title }
}
- expect(response).not_to have_gitlab_http_status(404)
+ expect(response).not_to have_gitlab_http_status(:not_found)
end
it 'does not redirect to the correct casing' do
@@ -449,7 +449,7 @@ describe Groups::MilestonesController do
milestone: { title: title }
}
- expect(response).not_to have_gitlab_http_status(301)
+ expect(response).not_to have_gitlab_http_status(:moved_permanently)
end
end
@@ -463,7 +463,7 @@ describe Groups::MilestonesController do
milestone: { title: title }
}
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
diff --git a/spec/controllers/groups/runners_controller_spec.rb b/spec/controllers/groups/runners_controller_spec.rb
index 14b0cf959b3..bf556078eec 100644
--- a/spec/controllers/groups/runners_controller_spec.rb
+++ b/spec/controllers/groups/runners_controller_spec.rb
@@ -21,7 +21,7 @@ describe Groups::RunnersController do
it 'renders show with 200 status code' do
get :show, params: { group_id: group, id: runner }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template(:show)
end
end
@@ -34,7 +34,7 @@ describe Groups::RunnersController do
it 'renders a 404' do
get :show, params: { group_id: group, id: runner }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -48,7 +48,7 @@ describe Groups::RunnersController do
it 'renders show with 200 status code' do
get :edit, params: { group_id: group, id: runner }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template(:edit)
end
end
@@ -61,7 +61,7 @@ describe Groups::RunnersController do
it 'renders a 404' do
get :edit, params: { group_id: group, id: runner }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -79,7 +79,7 @@ describe Groups::RunnersController do
post :update, params: params.merge(runner: { description: new_desc } )
end.to change { runner.ensure_runner_queue_value }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(runner.reload.description).to eq(new_desc)
end
end
@@ -96,7 +96,7 @@ describe Groups::RunnersController do
post :update, params: params.merge(runner: { description: old_desc.swapcase } )
end.not_to change { runner.ensure_runner_queue_value }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(runner.reload.description).to eq(old_desc)
end
end
@@ -111,7 +111,7 @@ describe Groups::RunnersController do
it 'destroys the runner and redirects' do
delete :destroy, params: params
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(Ci::Runner.find_by(id: runner.id)).to be_nil
end
end
@@ -124,7 +124,7 @@ describe Groups::RunnersController do
it 'responds 404 and does not destroy the runner' do
delete :destroy, params: params
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(Ci::Runner.find_by(id: runner.id)).to be_present
end
end
@@ -143,7 +143,7 @@ describe Groups::RunnersController do
post :resume, params: params
end.to change { runner.ensure_runner_queue_value }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(runner.reload.active).to eq(true)
end
end
@@ -160,7 +160,7 @@ describe Groups::RunnersController do
post :resume, params: params
end.not_to change { runner.ensure_runner_queue_value }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(runner.reload.active).to eq(false)
end
end
@@ -179,7 +179,7 @@ describe Groups::RunnersController do
post :pause, params: params
end.to change { runner.ensure_runner_queue_value }
- expect(response).to have_gitlab_http_status(302)
+ expect(response).to have_gitlab_http_status(:found)
expect(runner.reload.active).to eq(false)
end
end
@@ -196,7 +196,7 @@ describe Groups::RunnersController do
post :pause, params: params
end.not_to change { runner.ensure_runner_queue_value }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
expect(runner.reload.active).to eq(true)
end
end
diff --git a/spec/controllers/groups/settings/ci_cd_controller_spec.rb b/spec/controllers/groups/settings/ci_cd_controller_spec.rb
index 897ba491036..4e8cb3f94fb 100644
--- a/spec/controllers/groups/settings/ci_cd_controller_spec.rb
+++ b/spec/controllers/groups/settings/ci_cd_controller_spec.rb
@@ -21,7 +21,7 @@ describe Groups::Settings::CiCdController do
it 'renders show with 200 status code' do
get :show, params: { group_id: group }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
expect(response).to render_template(:show)
end
end
@@ -34,7 +34,7 @@ describe Groups::Settings::CiCdController do
it 'renders a 404' do
get :show, params: { group_id: group }
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -47,7 +47,7 @@ describe Groups::Settings::CiCdController do
it 'renders show with 200 status code' do
get :show, params: { group_id: group }
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
@@ -79,7 +79,7 @@ describe Groups::Settings::CiCdController do
it 'renders a 404' do
subject
- expect(response).to have_gitlab_http_status(404)
+ expect(response).to have_gitlab_http_status(:not_found)
end
end
end
@@ -99,7 +99,7 @@ describe Groups::Settings::CiCdController do
group.add_maintainer(user)
end
- it { is_expected.to have_gitlab_http_status(404) }
+ it { is_expected.to have_gitlab_http_status(:not_found) }
end
context 'when user has enough privileges' do
@@ -170,7 +170,7 @@ describe Groups::Settings::CiCdController do
group.add_owner(user)
end
- it { is_expected.to have_gitlab_http_status(404) }
+ it { is_expected.to have_gitlab_http_status(:not_found) }
end
context 'when user is an admin' do
diff --git a/spec/controllers/groups/variables_controller_spec.rb b/spec/controllers/groups/variables_controller_spec.rb
index 2d9c5c9d799..d6c790ae7b8 100644
--- a/spec/controllers/groups/variables_controller_spec.rb
+++ b/spec/controllers/groups/variables_controller_spec.rb
@@ -50,7 +50,7 @@ describe Groups::VariablesController do
it 'is successful' do
get :show, params: { group_id: group }, format: :json
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
@@ -66,7 +66,7 @@ describe Groups::VariablesController do
},
format: :json
- expect(response).to have_gitlab_http_status(200)
+ expect(response).to have_gitlab_http_status(:ok)
end
end
end
diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb
index 608e4a58e5a..fb4d1cf59fe 100644
--- a/spec/controllers/projects/issues_controller_spec.rb
+++ b/spec/controllers/projects/issues_controller_spec.rb
@@ -1084,12 +1084,6 @@ describe Projects::IssuesController do
it 'creates a sentry issue' do
expect { subject }.to change(SentryIssue, :count)
end
-
- it 'with existing issue it will not create an issue' do
- post_new_issue(sentry_issue_attributes: { sentry_issue_identifier: 1234567 })
-
- expect { subject }.not_to change(Issue, :count)
- end
end
end
diff --git a/spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb b/spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb
index e425acd4ae5..8311f3f4539 100644
--- a/spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb
+++ b/spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb
@@ -125,6 +125,25 @@ describe Gitlab::DatabaseImporters::SelfMonitoring::Project::CreateService do
expect(application_setting.self_monitoring_project_id).to eq(project.id)
end
+ it 'creates an environment for the project' do
+ expect(project.default_environment.name).to eq('production')
+ end
+
+ context 'when the environment creation fails' do
+ let(:environment) { build(:environment, name: 'production') }
+
+ it 'returns error' do
+ allow(Environment).to receive(:new).and_return(environment)
+ allow(environment).to receive(:save).and_return(false)
+
+ expect(result).to eq(
+ status: :error,
+ message: 'Could not create environment',
+ last_step: :create_environment
+ )
+ end
+ end
+
it 'returns error when saving project ID fails' do
allow(application_setting).to receive(:update).and_call_original
allow(application_setting).to receive(:update)
diff --git a/spec/lib/gitlab/diff/highlight_cache_spec.rb b/spec/lib/gitlab/diff/highlight_cache_spec.rb
index c1ec97ae88c..218c393c409 100644
--- a/spec/lib/gitlab/diff/highlight_cache_spec.rb
+++ b/spec/lib/gitlab/diff/highlight_cache_spec.rb
@@ -101,13 +101,6 @@ describe Gitlab::Diff::HighlightCache, :clean_gitlab_redis_cache do
let(:paths) { merge_request.diffs.raw_diff_files.select(&:text?).map(&:file_path) }
end
- it 'updates memory usage metrics' do
- expect(described_class.gitlab_redis_diff_caching_memory_usage_bytes)
- .to receive(:observe).and_call_original
-
- cache.send(:write_to_redis_hash, diff_hash)
- end
-
context 'different diff_collections for the same diffable' do
before do
cache.write_if_empty
diff --git a/spec/support/helpers/dns_helpers.rb b/spec/support/helpers/dns_helpers.rb
index 941b57c2c97..29be4da6902 100644
--- a/spec/support/helpers/dns_helpers.rb
+++ b/spec/support/helpers/dns_helpers.rb
@@ -17,13 +17,13 @@ module DnsHelpers
end
def stub_invalid_dns!
- allow(Addrinfo).to receive(:getaddrinfo).with(/foobar\.\w|(\d{1,3}\.){4,}\d{1,3}/i, anything, nil, :STREAM) do
+ allow(Addrinfo).to receive(:getaddrinfo).with(/\Afoobar\.\w|(\d{1,3}\.){4,}\d{1,3}\z/i, anything, nil, :STREAM) do
raise SocketError.new("getaddrinfo: Name or service not known")
end
end
def permit_local_dns!
- local_addresses = /(127|10)\.0\.0\.\d{1,3}|(192\.168|172\.16)\.\d{1,3}\.\d{1,3}|0\.0\.0\.0|localhost/i
+ local_addresses = /\A(127|10)\.0\.0\.\d{1,3}|(192\.168|172\.16)\.\d{1,3}\.\d{1,3}|0\.0\.0\.0|localhost\z/i
allow(Addrinfo).to receive(:getaddrinfo).with(local_addresses, anything, nil, :STREAM).and_call_original
allow(Addrinfo).to receive(:getaddrinfo).with(local_addresses, anything, nil, :STREAM, anything, anything).and_call_original
end
diff --git a/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb b/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb
index 0a918ccde81..efd82ecb15a 100644
--- a/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb
+++ b/spec/support/shared_contexts/policies/project_policy_table_shared_context.rb
@@ -318,5 +318,169 @@ RSpec.shared_context 'ProjectPolicyTable context' do
:private | :non_member | 0
:private | :anonymous | 0
end
+
+ # :snippet_level, :project_level, :feature_access_level, :membership, :expected_count
+ def permission_table_for_project_snippet_access
+ :public | :public | :enabled | :admin | 1
+ :public | :public | :enabled | :reporter | 1
+ :public | :public | :enabled | :guest | 1
+ :public | :public | :enabled | :non_member | 1
+ :public | :public | :enabled | :anonymous | 1
+
+ :public | :public | :private | :admin | 1
+ :public | :public | :private | :reporter | 1
+ :public | :public | :private | :guest | 1
+ :public | :public | :private | :non_member | 0
+ :public | :public | :private | :anonymous | 0
+
+ :public | :public | :disabled | :admin | 1
+ :public | :public | :disabled | :reporter | 0
+ :public | :public | :disabled | :guest | 0
+ :public | :public | :disabled | :non_member | 0
+ :public | :public | :disabled | :anonymous | 0
+
+ :public | :internal | :enabled | :admin | 1
+ :public | :internal | :enabled | :reporter | 1
+ :public | :internal | :enabled | :guest | 1
+ :public | :internal | :enabled | :non_member | 1
+ :public | :internal | :enabled | :anonymous | 0
+
+ :public | :internal | :private | :admin | 1
+ :public | :internal | :private | :reporter | 1
+ :public | :internal | :private | :guest | 1
+ :public | :internal | :private | :non_member | 0
+ :public | :internal | :private | :anonymous | 0
+
+ :public | :internal | :disabled | :admin | 1
+ :public | :internal | :disabled | :reporter | 0
+ :public | :internal | :disabled | :guest | 0
+ :public | :internal | :disabled | :non_member | 0
+ :public | :internal | :disabled | :anonymous | 0
+
+ :public | :private | :private | :admin | 1
+ :public | :private | :private | :reporter | 1
+ :public | :private | :private | :guest | 1
+ :public | :private | :private | :non_member | 0
+ :public | :private | :private | :anonymous | 0
+
+ :public | :private | :disabled | :reporter | 0
+ :public | :private | :disabled | :guest | 0
+ :public | :private | :disabled | :non_member | 0
+ :public | :private | :disabled | :anonymous | 0
+
+ :internal | :public | :enabled | :admin | 1
+ :internal | :public | :enabled | :reporter | 1
+ :internal | :public | :enabled | :guest | 1
+ :internal | :public | :enabled | :non_member | 1
+ :internal | :public | :enabled | :anonymous | 0
+
+ :internal | :public | :private | :admin | 1
+ :internal | :public | :private | :reporter | 1
+ :internal | :public | :private | :guest | 1
+ :internal | :public | :private | :non_member | 0
+ :internal | :public | :private | :anonymous | 0
+
+ :internal | :public | :disabled | :admin | 1
+ :internal | :public | :disabled | :reporter | 0
+ :internal | :public | :disabled | :guest | 0
+ :internal | :public | :disabled | :non_member | 0
+ :internal | :public | :disabled | :anonymous | 0
+
+ :internal | :internal | :enabled | :admin | 1
+ :internal | :internal | :enabled | :reporter | 1
+ :internal | :internal | :enabled | :guest | 1
+ :internal | :internal | :enabled | :non_member | 1
+ :internal | :internal | :enabled | :anonymous | 0
+
+ :internal | :internal | :private | :admin | 1
+ :internal | :internal | :private | :reporter | 1
+ :internal | :internal | :private | :guest | 1
+ :internal | :internal | :private | :non_member | 0
+ :internal | :internal | :private | :anonymous | 0
+
+ :internal | :internal | :disabled | :admin | 1
+ :internal | :internal | :disabled | :reporter | 0
+ :internal | :internal | :disabled | :guest | 0
+ :internal | :internal | :disabled | :non_member | 0
+ :internal | :internal | :disabled | :anonymous | 0
+
+ :internal | :private | :private | :admin | 1
+ :internal | :private | :private | :reporter | 1
+ :internal | :private | :private | :guest | 1
+ :internal | :private | :private | :non_member | 0
+ :internal | :private | :private | :anonymous | 0
+
+ :internal | :private | :disabled | :admin | 1
+ :internal | :private | :disabled | :reporter | 0
+ :internal | :private | :disabled | :guest | 0
+ :internal | :private | :disabled | :non_member | 0
+ :internal | :private | :disabled | :anonymous | 0
+
+ :private | :public | :enabled | :admin | 1
+ :private | :public | :enabled | :reporter | 1
+ :private | :public | :enabled | :guest | 1
+ :private | :public | :enabled | :non_member | 0
+ :private | :public | :enabled | :anonymous | 0
+
+ :private | :public | :private | :admin | 1
+ :private | :public | :private | :reporter | 1
+ :private | :public | :private | :guest | 1
+ :private | :public | :private | :non_member | 0
+ :private | :public | :private | :anonymous | 0
+
+ :private | :public | :disabled | :admin | 1
+ :private | :public | :disabled | :reporter | 0
+ :private | :public | :disabled | :guest | 0
+ :private | :public | :disabled | :non_member | 0
+ :private | :public | :disabled | :anonymous | 0
+
+ :private | :internal | :enabled | :admin | 1
+ :private | :internal | :enabled | :reporter | 1
+ :private | :internal | :enabled | :guest | 1
+ :private | :internal | :enabled | :non_member | 0
+ :private | :internal | :enabled | :anonymous | 0
+
+ :private | :internal | :private | :admin | 1
+ :private | :internal | :private | :reporter | 1
+ :private | :internal | :private | :guest | 1
+ :private | :internal | :private | :non_member | 0
+ :private | :internal | :private | :anonymous | 0
+
+ :private | :internal | :disabled | :admin | 1
+ :private | :internal | :disabled | :reporter | 0
+ :private | :internal | :disabled | :guest | 0
+ :private | :internal | :disabled | :non_member | 0
+ :private | :internal | :disabled | :anonymous | 0
+
+ :private | :private | :private | :admin | 1
+ :private | :private | :private | :reporter | 1
+ :private | :private | :private | :guest | 1
+ :private | :private | :private | :non_member | 0
+ :private | :private | :private | :anonymous | 0
+
+ :private | :private | :disabled | :admin | 1
+ :private | :private | :disabled | :reporter | 0
+ :private | :private | :disabled | :guest | 0
+ :private | :private | :disabled | :non_member | 0
+ :private | :private | :disabled | :anonymous | 0
+ end
+
+ # :snippet_level, :membership, :expected_count
+ def permission_table_for_personal_snippet_access
+ :public | :admin | 1
+ :public | :author | 1
+ :public | :non_member | 1
+ :public | :anonymous | 1
+
+ :internal | :admin | 1
+ :internal | :author | 1
+ :internal | :non_member | 1
+ :internal | :anonymous | 0
+
+ :private | :admin | 1
+ :private | :author | 1
+ :private | :non_member | 0
+ :private | :anonymous | 0
+ end
# rubocop:enable Metrics/AbcSize
end