Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-04-19 09:09:21 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-04-19 09:09:21 +0300
commitc4e03a0f9695e2c0e73084873da3464570886699 (patch)
treee4e5812dd990232b1440d0aee8e2bbdf0e823090
parentb96e93e10ea82d484e226874bd91dc83f092fe0d (diff)
Add latest changes from gitlab-org/gitlab@master
-rw-r--r--.gitlab/ci/rules.gitlab-ci.yml10
-rw-r--r--changelogs/unreleased/327593-optimize-user-current-highest-access-level.yml5
-rw-r--r--db/post_migrate/20210415074645_index_members_on_user_id_access_level_requested_at_is_null.rb17
-rw-r--r--db/schema_migrations/202104150746451
-rw-r--r--db/structure.sql2
-rw-r--r--qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb6
6 files changed, 38 insertions, 3 deletions
diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index edacbee8cab..c2d16582a68 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -132,6 +132,14 @@
- "config/webpack.config.js"
- "config/helpers/*.js"
+.frontend-build-patterns: &frontend-build-patterns
+ - "{package.json,yarn.lock}"
+ - "babel.config.js"
+ - "config/webpack.config.js"
+ - "config/**/*.js"
+ - "vendor/assets/**/*"
+ - "{,ee/}app/assets/**/*"
+
.frontend-patterns: &frontend-patterns
- "{package.json,yarn.lock}"
- "babel.config.js"
@@ -467,7 +475,7 @@
- <<: *if-not-canonical-namespace
when: never
- if: '$DANGER_GITLAB_API_TOKEN && $CI_MERGE_REQUEST_IID && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH'
- changes: *frontend-patterns
+ changes: *frontend-build-patterns
allow_failure: true
################
diff --git a/changelogs/unreleased/327593-optimize-user-current-highest-access-level.yml b/changelogs/unreleased/327593-optimize-user-current-highest-access-level.yml
new file mode 100644
index 00000000000..25c0620becd
--- /dev/null
+++ b/changelogs/unreleased/327593-optimize-user-current-highest-access-level.yml
@@ -0,0 +1,5 @@
+---
+title: Add partial index on members to optimize highest access level query
+merge_request: 59455
+author:
+type: performance
diff --git a/db/post_migrate/20210415074645_index_members_on_user_id_access_level_requested_at_is_null.rb b/db/post_migrate/20210415074645_index_members_on_user_id_access_level_requested_at_is_null.rb
new file mode 100644
index 00000000000..fb379d48b2a
--- /dev/null
+++ b/db/post_migrate/20210415074645_index_members_on_user_id_access_level_requested_at_is_null.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class IndexMembersOnUserIdAccessLevelRequestedAtIsNull < ActiveRecord::Migration[6.0]
+ include Gitlab::Database::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ INDEX_NAME = 'index_members_on_user_id_and_access_level_requested_at_is_null'
+
+ def up
+ add_concurrent_index(:members, [:user_id, :access_level], where: 'requested_at IS NULL', name: INDEX_NAME)
+ end
+
+ def down
+ remove_concurrent_index_by_name(:members, INDEX_NAME)
+ end
+end
diff --git a/db/schema_migrations/20210415074645 b/db/schema_migrations/20210415074645
new file mode 100644
index 00000000000..d996f095dce
--- /dev/null
+++ b/db/schema_migrations/20210415074645
@@ -0,0 +1 @@
+393a7f1029f05f73c26e031c8980734e13c304846c3457d581c006dc2566d94d \ No newline at end of file
diff --git a/db/structure.sql b/db/structure.sql
index 2d4b0d96fd7..00c5881e672 100644
--- a/db/structure.sql
+++ b/db/structure.sql
@@ -23035,6 +23035,8 @@ CREATE INDEX index_members_on_requested_at ON members USING btree (requested_at)
CREATE INDEX index_members_on_source_id_and_source_type ON members USING btree (source_id, source_type);
+CREATE INDEX index_members_on_user_id_and_access_level_requested_at_is_null ON members USING btree (user_id, access_level) WHERE (requested_at IS NULL);
+
CREATE INDEX index_members_on_user_id_created_at ON members USING btree (user_id, created_at) WHERE ((ldap = true) AND ((type)::text = 'GroupMember'::text) AND ((source_type)::text = 'Namespace'::text));
CREATE INDEX index_members_on_user_id_source_id_source_type ON members USING btree (user_id, source_id, source_type);
diff --git a/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb b/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb
index c5d73d2fd7d..01aada2d6dd 100644
--- a/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb
+++ b/qa/qa/specs/features/browser_ui/4_verify/pipeline/merge_mr_when_pipline_is_blocked_spec.rb
@@ -39,6 +39,7 @@ module QA
needs: [test_blocked_pipeline]
script: echo do not click me
when: manual
+ allow_failure: false
dummy_job:
stage: deploy
@@ -71,8 +72,9 @@ module QA
it 'can still merge MR successfully', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/971' do
Page::MergeRequest::Show.perform do |show|
- show.wait_until(reload: false) { show.has_pipeline_status?('running') }
- show.merge_immediately!
+ # waiting for manual action status shows status badge 'blocked' on pipelines page
+ show.wait_until(reload: false) { show.has_pipeline_status?('waiting for manual action') }
+ show.merge!
expect(show).to be_merged
end