Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
02c9272b54
commit
2d4f258f06
11 changed files with 75 additions and 94 deletions
|
@ -103,8 +103,8 @@ class ProfilesController < Profiles::ApplicationController
|
|||
@username_param ||= user_params.require(:username)
|
||||
end
|
||||
|
||||
def user_params
|
||||
@user_params ||= params.require(:user).permit(
|
||||
def user_params_attributes
|
||||
[
|
||||
:avatar,
|
||||
:bio,
|
||||
:email,
|
||||
|
@ -130,6 +130,12 @@ class ProfilesController < Profiles::ApplicationController
|
|||
:pronouns,
|
||||
:pronunciation,
|
||||
status: [:emoji, :message, :availability]
|
||||
)
|
||||
]
|
||||
end
|
||||
|
||||
def user_params
|
||||
@user_params ||= params.require(:user).permit(user_params_attributes)
|
||||
end
|
||||
end
|
||||
|
||||
ProfilesController.prepend_mod
|
||||
|
|
|
@ -147,8 +147,12 @@ class RegistrationsController < Devise::RegistrationsController
|
|||
resource.persisted? && resource.blocked_pending_approval?
|
||||
end
|
||||
|
||||
def sign_up_params_attributes
|
||||
[:username, :email, :name, :first_name, :last_name, :password]
|
||||
end
|
||||
|
||||
def sign_up_params
|
||||
params.require(:user).permit(:username, :email, :name, :first_name, :last_name, :password)
|
||||
params.require(:user).permit(sign_up_params_attributes)
|
||||
end
|
||||
|
||||
def resource_name
|
||||
|
|
|
@ -77,3 +77,5 @@ module Users
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
Users::TermsController.prepend_mod
|
||||
|
|
|
@ -5,3 +5,5 @@ module RecaptchaHelper
|
|||
!!Gitlab::Recaptcha.enabled?
|
||||
end
|
||||
end
|
||||
|
||||
RecaptchaHelper.prepend_mod
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
pattern: ".{#{@minimum_password_length},}",
|
||||
title: s_('SignUp|Minimum length is %{minimum_password_length} characters.') % { minimum_password_length: @minimum_password_length }
|
||||
%p.gl-field-hint.text-secondary= s_('SignUp|Minimum length is %{minimum_password_length} characters.') % { minimum_password_length: @minimum_password_length }
|
||||
= render_if_exists 'devise/shared/phone_verification', form: f
|
||||
%div
|
||||
- if show_recaptcha_sign_up?
|
||||
= recaptcha_tags nonce: content_security_policy_nonce
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
- redirect_params = { redirect: @redirect } if @redirect
|
||||
- accept_term_link = accept_term_path(@term, redirect_params)
|
||||
|
||||
.card-body.rendered-terms{ data: { qa_selector: 'terms_content' } }
|
||||
= markdown_field(@term, :terms)
|
||||
- if current_user
|
||||
= render_if_exists 'devise/shared/form_phone_verification', accept_term_link: accept_term_link, inline: true
|
||||
.card-footer.footer-block.clearfix
|
||||
- if can?(current_user, :accept_terms, @term)
|
||||
.float-right
|
||||
= button_to accept_term_path(@term, redirect_params), class: 'gl-button btn btn-confirm gl-ml-3', data: { qa_selector: 'accept_terms_button' } do
|
||||
= button_to accept_term_link, class: 'gl-button btn btn-confirm gl-ml-3', data: { qa_selector: 'accept_terms_button' } do
|
||||
= _('Accept terms')
|
||||
- else
|
||||
.float-right
|
||||
|
|
|
@ -185,7 +185,7 @@ Rails.application.routes.draw do
|
|||
end
|
||||
|
||||
Gitlab.jh do
|
||||
draw :province
|
||||
draw :global_jh
|
||||
end
|
||||
|
||||
if ENV['GITLAB_CHAOS_SECRET'] || Rails.env.development? || Rails.env.test?
|
||||
|
|
|
@ -63,9 +63,6 @@ Depending on your installation method, this file is located at:
|
|||
- Omnibus GitLab: `/var/log/gitlab/gitlab-rails/production_json.log`
|
||||
- Installations from source: `/home/git/gitlab/log/production_json.log`
|
||||
|
||||
When GitLab is running in an environment other than production,
|
||||
the corresponding log file is shown here.
|
||||
|
||||
It contains a structured log for Rails controller requests received from
|
||||
GitLab, thanks to [Lograge](https://github.com/roidrage/lograge/).
|
||||
Requests from the API are logged to a separate file in `api_json.log`.
|
||||
|
@ -216,9 +213,6 @@ Depending on your installation method, this file is located at:
|
|||
- Omnibus GitLab: `/var/log/gitlab/gitlab-rails/production.log`
|
||||
- Installations from source: `/home/git/gitlab/log/production.log`
|
||||
|
||||
When GitLab is running in an environment other than production,
|
||||
the corresponding log file is shown here.
|
||||
|
||||
It contains information about all performed requests. You can see the
|
||||
URL and type of request, IP address, and what parts of code were
|
||||
involved to service this particular request. Also, you can see all SQL
|
||||
|
|
|
@ -9,9 +9,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
> Moved to GitLab Premium in 13.9.
|
||||
|
||||
This document describes how to enable Advanced Search. After
|
||||
Advanced Search is enabled, you'll have the benefit of fast search response times
|
||||
and the advantage of the [special searches](../user/search/advanced_search.md).
|
||||
This page describes how to enable Advanced Search. When enabled,
|
||||
Advanced Search provides faster search response times and [improved search features](../user/search/advanced_search.md).
|
||||
|
||||
## Version requirements
|
||||
|
||||
|
@ -26,90 +25,61 @@ and the advantage of the [special searches](../user/search/advanced_search.md).
|
|||
| GitLab Enterprise Edition 9.0 through 11.4 | Elasticsearch 5.1 through 5.5 |
|
||||
| GitLab Enterprise Edition 8.4 through 8.17 | Elasticsearch 2.4 with [Delete By Query Plugin](https://www.elastic.co/guide/en/elasticsearch/plugins/2.4/plugins-delete-by-query.html) installed |
|
||||
|
||||
The Elasticsearch Integration is designed to work with supported versions of
|
||||
The Elasticsearch Integration works with supported versions of
|
||||
Elasticsearch and follows Elasticsearch's [End of Life Policy](https://www.elastic.co/support/eol).
|
||||
When we change Elasticsearch supported versions in GitLab, we announce them in [deprecation notes](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations) in monthly release posts
|
||||
before the actual removal.
|
||||
before we remove them.
|
||||
|
||||
## System requirements
|
||||
|
||||
Elasticsearch requires additional resources in excess of those documented in the
|
||||
Elasticsearch requires additional resources to those documented in the
|
||||
[GitLab system requirements](../install/requirements.md).
|
||||
|
||||
The amount of resources (memory, CPU, storage) varies greatly, based on the
|
||||
amount of data being indexed into the Elasticsearch cluster. According to
|
||||
Memory, CPU, and storage resource amounts vary depending on the amount of data you index into the Elasticsearch cluster. Heavily used Elasticsearch clusters may require more resources. According to
|
||||
[Elasticsearch official guidelines](https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html#_memory),
|
||||
each node should have:
|
||||
|
||||
- [Memory](https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html#_memory): 8 GiB (minimum).
|
||||
- [CPU](https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html#_cpus): Modern processor with multiple cores.
|
||||
- [Storage](https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html#_disks): Use SSD storage. The total storage size of all Elasticsearch nodes is about 50% of the total size of your Git repositories. It includes one primary and one replica.
|
||||
|
||||
A few notes on CPU and storage:
|
||||
|
||||
- CPU requirements for Elasticsearch tend to be minimal. There are specific
|
||||
scenarios where this isn't true, but GitLab.com isn't using Elasticsearch in
|
||||
an exceptionally CPU-heavy way. More cores are more performant than faster
|
||||
CPUs. Extra concurrency from multiple cores far outweighs a slightly
|
||||
faster clock speed in Elasticsearch.
|
||||
|
||||
- Storage requirements for Elasticsearch are important, especially for
|
||||
indexing-heavy clusters. When possible use SSDs, whose speed is far superior
|
||||
to any spinning media for Elasticsearch. In testing, nodes that use SSD storage
|
||||
see boosts in both query and indexing performance.
|
||||
|
||||
- We've introduced the [`estimate_cluster_size`](#gitlab-advanced-search-rake-tasks)
|
||||
Rake task to estimate the Advanced Search storage requirements in advance, which
|
||||
- The [`estimate_cluster_size`](#gitlab-advanced-search-rake-tasks) Rake task estimates the
|
||||
Advanced Search storage requirements in advance. The Rake task uses total repository size
|
||||
for the calculation. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/221177) in GitLab 13.10.
|
||||
|
||||
Keep in mind, these are **minimum requirements** for Elasticsearch.
|
||||
Heavily-used Elasticsearch clusters likely require considerably more
|
||||
resources.
|
||||
- [CPU](https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html#_cpus): Modern processor with multiple cores. GitLab.com has minimal CPU requirements for Elasticsearch. Multiple cores provide extra concurrency, which is more beneficial than faster CPUs.
|
||||
- [Storage](https://www.elastic.co/guide/en/elasticsearch/guide/current/hardware.html#_disks): Use SSD storage. The total storage size of all Elasticsearch nodes is about 50% of the total size of your Git repositories. It includes one primary and one replica. The [`estimate_cluster_size`](#gitlab-advanced-search-rake-tasks) Rake task ([introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/221177) in GitLab 13.10) uses total repository size to estimate the Advanced Search storage requirements.
|
||||
|
||||
## Install Elasticsearch
|
||||
|
||||
Elasticsearch is *not* included in the Omnibus packages or when you install from
|
||||
source. You must [install it separately](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/install-elasticsearch.html "Elasticsearch 7.x installation documentation").
|
||||
Be sure to select your version. Providing detailed information on installing
|
||||
Elasticsearch is out of the scope of this document.
|
||||
source. You must [install it separately](https://www.elastic.co/guide/en/elasticsearch/reference/7.x/install-elasticsearch.html "Elasticsearch 7.x installation documentation") and ensure you select your version. Detailed information on how to install Elasticsearch is out of the scope of this page.
|
||||
|
||||
Elasticsearch should be installed on a separate server, whether you install
|
||||
it yourself or use a cloud hosted offering like Elastic's [Elasticsearch Service](https://www.elastic.co/elasticsearch/service)
|
||||
(available on AWS, GCP, or Azure) or the [Amazon Elasticsearch](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg.html)
|
||||
service. Running Elasticsearch on the same server as GitLab is not recommended
|
||||
and can cause a degradation in GitLab instance performance.
|
||||
You can install Elasticsearch yourself, or use a cloud hosted offering such as [Elasticsearch Service](https://www.elastic.co/elasticsearch/service)(available on AWS, GCP, or Azure) or the [Amazon Elasticsearch](https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-gsg.html)
|
||||
service.
|
||||
You should install Elasticsearch on a separate server. Running Elasticsearch on the same server as GitLab is not recommended and can cause a degradation in GitLab instance performance.
|
||||
|
||||
**For a single node Elasticsearch cluster, the functional cluster health status
|
||||
is always yellow and never green**. This is due to allocation of the primary shard. Replicas cannot be allocated as there is no other node to which Elasticsearch can assign a replica.
|
||||
For a single node Elasticsearch cluster, the functional cluster health status is always yellow due to the allocation of the primary shard. Elasticsearch cannot assign replica shards to the same node as primary shards.
|
||||
|
||||
After the data is added to the database or repository and [Elasticsearch is
|
||||
enabled in the Admin Area](#enable-advanced-search), the search index is
|
||||
updated automatically.
|
||||
The search index updates after you:
|
||||
|
||||
- Add data to the database or repository.
|
||||
- [Enable Elasticsearch](#enable-advanced-search) in the Admin Area.
|
||||
|
||||
## Upgrade to a new Elasticsearch major version
|
||||
|
||||
Elasticsearch can read and use indices created in the previous major version, so you don't need to change anything in the GitLab configuration when upgrading Elasticsearch.
|
||||
Elasticsearch reads and uses indices created in the previous major version. You are not required to change the GitLab configuration when you upgrade Elasticsearch.
|
||||
|
||||
If you created your current index before GitLab 13.0, you might want to reindex from scratch (which implicitly creates an alias) to use some features, for example [Zero downtime reindexing](#zero-downtime-reindexing). After you reindex, you can perform zero-downtime reindexing and benefit from future features that make use of the alias.
|
||||
If your current index was created before GitLab 13.0, you must reindex from scratch to create an alias to use features such as [zero downtime reindexing](#zero-downtime-reindexing). After you reindex, you can perform zero downtime reindexing and also benefit from future features that use the alias.
|
||||
|
||||
To check if your current index was created after GitLab 13.0, use the [Elasticsearch cat aliases API](https://www.elastic.co/guide/en/elasticsearch/reference/7.11/cat-alias.html).
|
||||
To check if your current index was created before GitLab 13.0, use the [Elasticsearch cat aliases API](https://www.elastic.co/guide/en/elasticsearch/reference/7.11/cat-alias.html).
|
||||
If the returned list of aliases does not contain a `gitlab-production` alias, you must reindex to use features such as zero downtime reindexing.
|
||||
If the returned list of aliases contains an entry for `gitlab-production` that points to an index
|
||||
named `gitlab-production-<numerical timestamp>`, your index was created after GitLab 13.0.
|
||||
If the `gitlab-production` alias is missing, you must reindex from scratch to use
|
||||
features such as Zero-downtime reindexing.
|
||||
|
||||
## Elasticsearch repository indexer
|
||||
|
||||
For indexing Git repository data, GitLab uses an [indexer written in Go](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer).
|
||||
To index Git repository data, GitLab uses an [indexer written in Go](https://gitlab.com/gitlab-org/gitlab-elasticsearch-indexer).
|
||||
|
||||
The way you install the Go indexer depends on your version of GitLab:
|
||||
Depending on your GitLab version, there are different installation procedures for the Go indexer:
|
||||
|
||||
- For Omnibus GitLab 11.8 or greater, see [Omnibus GitLab](#omnibus-gitlab).
|
||||
- For installations from source or older versions of Omnibus GitLab,
|
||||
[install the indexer from source](#from-source).
|
||||
- If you are using GitLab Development Kit, see [GDK Elasticsearch how-to](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/elasticsearch.md)
|
||||
- If you are using GitLab Development Kit, see [GDK Elasticsearch how-to](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/elasticsearch.md).
|
||||
|
||||
### Omnibus GitLab
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ RSpec.describe RecaptchaHelper, type: :helper do
|
|||
it 'returns false' do
|
||||
stub_application_setting(recaptcha_enabled: false)
|
||||
|
||||
expect(helper.show_recaptcha_sign_up?).to be(false)
|
||||
expect(helper.show_recaptcha_sign_up?).to be_falsey
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -22,7 +22,7 @@ RSpec.describe RecaptchaHelper, type: :helper do
|
|||
it 'returns true' do
|
||||
stub_application_setting(recaptcha_enabled: true)
|
||||
|
||||
expect(helper.show_recaptcha_sign_up?).to be(true)
|
||||
expect(helper.show_recaptcha_sign_up?).to be_truthy
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -36,7 +36,7 @@ module Tooling
|
|||
CATEGORIES = {
|
||||
[%r{usage_data\.rb}, %r{^(\+|-).*\s+(count|distinct_count|estimate_batch_distinct_count)\(.*\)(.*)$}] => [:database, :backend, :product_intelligence],
|
||||
|
||||
%r{\A(ee/)?config/feature_flags/} => :feature_flag,
|
||||
%r{\A((ee|jh)/)?config/feature_flags/} => :feature_flag,
|
||||
|
||||
%r{\Adoc/.*(\.(md|png|gif|jpg|yml))\z} => :docs,
|
||||
%r{\A(CONTRIBUTING|LICENSE|MAINTENANCE|PHILOSOPHY|PROCESS|README)(\.md)?\z} => :docs,
|
||||
|
@ -47,11 +47,11 @@ module Tooling
|
|||
spec/frontend/tracking/.*\.js |
|
||||
spec/frontend/tracking_spec\.js
|
||||
)\z}x => [:frontend, :product_intelligence],
|
||||
%r{\A(ee/)?app/(assets|views)/} => :frontend,
|
||||
%r{\A(ee/)?public/} => :frontend,
|
||||
%r{\A(ee/)?spec/(javascripts|frontend|frontend_integration)/} => :frontend,
|
||||
%r{\A(ee/)?vendor/assets/} => :frontend,
|
||||
%r{\A(ee/)?scripts/frontend/} => :frontend,
|
||||
%r{\A((ee|jh)/)?app/(assets|views)/} => :frontend,
|
||||
%r{\A((ee|jh)/)?public/} => :frontend,
|
||||
%r{\A((ee|jh)/)?spec/(javascripts|frontend|frontend_integration)/} => :frontend,
|
||||
%r{\A((ee|jh)/)?vendor/assets/} => :frontend,
|
||||
%r{\A((ee|jh)/)?scripts/frontend/} => :frontend,
|
||||
%r{(\A|/)(
|
||||
\.babelrc |
|
||||
\.browserslistrc |
|
||||
|
@ -74,12 +74,12 @@ module Tooling
|
|||
\.gitlab/ci/frontend\.gitlab-ci\.yml
|
||||
)\z}x => %i[frontend tooling],
|
||||
|
||||
%r{\A(ee/)?db/(geo/)?(migrate|post_migrate)/} => [:database, :migration],
|
||||
%r{\A(ee/)?db/(?!fixtures)[^/]+} => [:database],
|
||||
%r{\A(ee/)?lib/gitlab/(database|background_migration|sql|github_import)(/|\.rb)} => [:database, :backend],
|
||||
%r{\A((ee|jh)/)?db/(geo/)?(migrate|post_migrate)/} => [:database, :migration],
|
||||
%r{\A((ee|jh)/)?db/(?!fixtures)[^/]+} => [:database],
|
||||
%r{\A((ee|jh)/)?lib/gitlab/(database|background_migration|sql|github_import)(/|\.rb)} => [:database, :backend],
|
||||
%r{\A(app/services/authorized_project_update/find_records_due_for_refresh_service)(/|\.rb)} => [:database, :backend],
|
||||
%r{\A(app/models/project_authorization|app/services/users/refresh_authorized_projects_service)(/|\.rb)} => [:database, :backend],
|
||||
%r{\A(ee/)?app/finders/} => [:database, :backend],
|
||||
%r{\A((ee|jh)/)?app/finders/} => [:database, :backend],
|
||||
%r{\Arubocop/cop/migration(/|\.rb)} => :database,
|
||||
|
||||
%r{\A(\.gitlab-ci\.yml\z|\.gitlab\/ci)} => :tooling,
|
||||
|
@ -87,22 +87,22 @@ module Tooling
|
|||
%r{\Alefthook.yml\z} => :tooling,
|
||||
%r{\A\.editorconfig\z} => :tooling,
|
||||
%r{Dangerfile\z} => :tooling,
|
||||
%r{\A(ee/)?(danger/|tooling/danger/)} => :tooling,
|
||||
%r{\A(ee/)?scripts/} => :tooling,
|
||||
%r{\A((ee|jh)/)?(danger/|tooling/danger/)} => :tooling,
|
||||
%r{\A((ee|jh)/)?scripts/} => :tooling,
|
||||
%r{\Atooling/} => :tooling,
|
||||
%r{(CODEOWNERS)} => :tooling,
|
||||
%r{(tests.yml)} => :tooling,
|
||||
|
||||
%r{\Alib/gitlab/ci/templates} => :ci_template,
|
||||
|
||||
%r{\A(ee/)?spec/features/} => :test,
|
||||
%r{\A(ee/)?spec/support/shared_examples/features/} => :test,
|
||||
%r{\A(ee/)?spec/support/shared_contexts/features/} => :test,
|
||||
%r{\A(ee/)?spec/support/helpers/features/} => :test,
|
||||
%r{\A((ee|jh)/)?spec/features/} => :test,
|
||||
%r{\A((ee|jh)/)?spec/support/shared_examples/features/} => :test,
|
||||
%r{\A((ee|jh)/)?spec/support/shared_contexts/features/} => :test,
|
||||
%r{\A((ee|jh)/)?spec/support/helpers/features/} => :test,
|
||||
|
||||
%r{\A(ee/)?lib/gitlab/usage_data_counters/.*\.yml\z} => [:product_intelligence],
|
||||
%r{\A(ee/)?config/metrics/((.*\.yml)|(schema\.json))\z} => [:product_intelligence],
|
||||
%r{\A(ee/)?lib/gitlab/usage_data(_counters)?(/|\.rb)} => [:backend, :product_intelligence],
|
||||
%r{\A((ee|jh)/)?lib/gitlab/usage_data_counters/.*\.yml\z} => [:product_intelligence],
|
||||
%r{\A((ee|jh)/)?config/metrics/((.*\.yml)|(schema\.json))\z} => [:product_intelligence],
|
||||
%r{\A((ee|jh)/)?lib/gitlab/usage_data(_counters)?(/|\.rb)} => [:backend, :product_intelligence],
|
||||
%r{\A(
|
||||
lib/gitlab/tracking\.rb |
|
||||
spec/lib/gitlab/tracking_spec\.rb |
|
||||
|
@ -111,21 +111,21 @@ module Tooling
|
|||
lib/generators/rails/usage_metric_definition_generator\.rb |
|
||||
spec/lib/generators/usage_metric_definition_generator_spec\.rb |
|
||||
generator_templates/usage_metric_definition/metric_definition\.yml)\z}x => [:backend, :product_intelligence],
|
||||
%r{\A(ee/)?app/(?!assets|views)[^/]+} => :backend,
|
||||
%r{\A(ee/)?(bin|config|generator_templates|lib|rubocop)/} => :backend,
|
||||
%r{\A(ee/)?spec/} => :backend,
|
||||
%r{\A(ee/)?vendor/} => :backend,
|
||||
%r{\A((ee|jh)/)?app/(?!assets|views)[^/]+} => :backend,
|
||||
%r{\A((ee|jh)/)?(bin|config|generator_templates|lib|rubocop)/} => :backend,
|
||||
%r{\A((ee|jh)/)?spec/} => :backend,
|
||||
%r{\A((ee|jh)/)?vendor/} => :backend,
|
||||
%r{\A(Gemfile|Gemfile.lock|Rakefile)\z} => :backend,
|
||||
%r{\A[A-Z_]+_VERSION\z} => :backend,
|
||||
%r{\A\.rubocop((_manual)?_todo)?\.yml\z} => :backend,
|
||||
%r{\Afile_hooks/} => :backend,
|
||||
|
||||
%r{\A(ee/)?qa/} => :qa,
|
||||
%r{\A((ee|jh)/)?qa/} => :qa,
|
||||
|
||||
%r{\Aworkhorse/.*} => :workhorse,
|
||||
|
||||
# Files that don't fit into any category are marked with :none
|
||||
%r{\A(ee/)?changelogs/} => :none,
|
||||
%r{\A((ee|jh)/)?changelogs/} => :none,
|
||||
%r{\Alocale/gitlab\.pot\z} => :none,
|
||||
|
||||
# GraphQL auto generated doc files and schema
|
||||
|
|
Loading…
Reference in a new issue