Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
0c4afb9f56
commit
3b73b8fffe
|
@ -1,7 +1,7 @@
|
|||
<script>
|
||||
import { GlFilteredSearchToken } from '@gitlab/ui';
|
||||
import { mapActions } from 'vuex';
|
||||
import BoardFilteredSearch from '~/boards/components/board_filtered_search.vue';
|
||||
import BoardFilteredSearch from 'ee_else_ce/boards/components/board_filtered_search.vue';
|
||||
import { BoardType } from '~/boards/constants';
|
||||
import issueBoardFilters from '~/boards/issue_board_filters';
|
||||
import { TYPE_USER } from '~/graphql_shared/constants';
|
||||
|
|
|
@ -10,7 +10,9 @@ Gitlab.ee do
|
|||
end
|
||||
end
|
||||
|
||||
ActiveRecord::Base.establish_connection(Gitlab::Database.main.db_config_with_default_pool_size)
|
||||
unless Gitlab::Utils.to_boolean(ENV["GITLAB_LB_CONFIGURE_CONNECTION"], default: true)
|
||||
ActiveRecord::Base.establish_connection(Gitlab::Database.main.db_config_with_default_pool_size)
|
||||
end
|
||||
|
||||
Gitlab.ee do
|
||||
if Gitlab::Runtime.sidekiq? && Gitlab::Geo.geo_database_configured?
|
||||
|
|
|
@ -239,8 +239,8 @@ There are two different ways to add a new project to a group:
|
|||
|
||||
### Specify who can add projects to a group
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2534) in GitLab Premium 10.5.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/25975) to GitLab Free in 11.10.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/2534) in GitLab 10.5.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab-foss/-/merge_requests/25975) from GitLab Premium to GitLab Free in 11.10.
|
||||
|
||||
By default, [Developers and Maintainers](../permissions.md#group-members-permissions) can create projects under a group.
|
||||
|
||||
|
@ -258,8 +258,7 @@ To change this setting globally, see [Default project creation protection](../ad
|
|||
|
||||
## Group activity analytics **(PREMIUM)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/207164) in GitLab 12.10 as
|
||||
a [beta feature](https://about.gitlab.com/handbook/product/#beta).
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/207164) in GitLab 12.10 as a [beta feature](https://about.gitlab.com/handbook/product/#beta).
|
||||
|
||||
For a group, you can view how many merge requests, issues, and members were created in the last 90 days.
|
||||
|
||||
|
@ -309,7 +308,7 @@ All the members of the `Engineering` group are added to the `Frontend` group.
|
|||
> - Enabled on GitLab.com.
|
||||
> - Recommended for production use.
|
||||
> - Replaces the existing form with buttons to open a modal window.
|
||||
> - To use in GitLab self-managed instances, ask a GitLab administrator to [enable it](../project/members/index.md#enable-or-disable-modal-window). **(FREE SELF)**
|
||||
> - To use in GitLab self-managed instances, ask a GitLab administrator to [enable it](../project/members/index.md#enable-or-disable-modal-window).
|
||||
|
||||
WARNING:
|
||||
This feature might not be available to you. Check the **version history** note above for details.
|
||||
|
@ -412,7 +411,7 @@ because the project cannot be moved.
|
|||
|
||||
## Use a custom name for the initial branch
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43290) in GitLab 13.6.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/43290) in GitLab 13.6.
|
||||
|
||||
When you create a new project in GitLab, a default branch is created with the
|
||||
first push. The group owner can
|
||||
|
@ -432,7 +431,7 @@ This action removes the group. It also adds a background job to delete all proje
|
|||
|
||||
Specifically:
|
||||
|
||||
- In [GitLab 12.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/33257), on [Premium](https://about.gitlab.com/pricing/premium/) or higher tiers, this action adds a background job to mark a group for deletion. By default, the job schedules the deletion 7 days in the future. You can modify this waiting period through the [instance settings](../admin_area/settings/visibility_and_access_controls.md#default-deletion-delay).
|
||||
- In [GitLab 12.8 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/33257), on [GitLab Premium](https://about.gitlab.com/pricing/premium/) or higher tiers, this action adds a background job to mark a group for deletion. By default, the job schedules the deletion 7 days in the future. You can modify this waiting period through the [instance settings](../admin_area/settings/visibility_and_access_controls.md#default-deletion-delay).
|
||||
- In [GitLab 13.6 and later](https://gitlab.com/gitlab-org/gitlab/-/issues/39504), if the user who sets up the deletion is removed from the group before the
|
||||
deletion happens, the job is cancelled, and the group is no longer scheduled for deletion.
|
||||
|
||||
|
@ -538,8 +537,8 @@ You can export a list of members in a group as a CSV.
|
|||
|
||||
## Restrict group access by IP address **(PREMIUM)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/1985) in [GitLab Ultimate](https://about.gitlab.com/pricing/) 12.0.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/215410) to [GitLab Premium](https://about.gitlab.com/pricing/) in 13.1.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/1985) in GitLab 12.0.
|
||||
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/215410) from GitLab Ultimate to GitLab Premium in 13.1.
|
||||
|
||||
To ensure only people from your organization can access particular
|
||||
resources, you can restrict access to groups by IP address. This group-level setting
|
||||
|
@ -574,7 +573,7 @@ To restrict group access by IP address:
|
|||
|
||||
## Restrict group access by domain **(PREMIUM)**
|
||||
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7297) in [GitLab Premium](https://about.gitlab.com/pricing/) 12.2.
|
||||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/7297) in GitLab 12.2.
|
||||
> - Support for specifying multiple email domains [added](https://gitlab.com/gitlab-org/gitlab/-/issues/33143) in GitLab 13.1.
|
||||
> - Support for restricting access to projects within the group [added](https://gitlab.com/gitlab-org/gitlab/-/issues/14004) in GitLab 14.1.2.
|
||||
|
||||
|
@ -617,7 +616,7 @@ To learn how to create templates for issues and merge requests, see
|
|||
[Description templates](../project/description_templates.md).
|
||||
|
||||
Define project templates at a group level by setting a group as the template source.
|
||||
[Learn more about group-level project templates](custom_project_templates.md). **(PREMIUM)**
|
||||
[Learn more about group-level project templates](custom_project_templates.md).
|
||||
|
||||
### Enable group file template **(PREMIUM)**
|
||||
|
||||
|
@ -696,7 +695,7 @@ In GitLab 13.11 and above the group setting for delayed project removal is inher
|
|||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/216987) in GitLab 13.3.
|
||||
|
||||
By default, projects in a group can be forked.
|
||||
Optionally, on [Premium](https://about.gitlab.com/pricing/) or higher tiers,
|
||||
Optionally, on [GitLab Premium](https://about.gitlab.com/pricing/) or higher tiers,
|
||||
you can prevent the projects in a group from being forked outside of the current top-level group.
|
||||
|
||||
Previously, this setting was available only for groups enforcing a
|
||||
|
@ -757,20 +756,20 @@ To view the merge request approval rules UI for a group:
|
|||
## Related topics
|
||||
|
||||
- [Group wikis](../project/wiki/index.md)
|
||||
- [Maximum artifacts size](../admin_area/settings/continuous_integration.md#maximum-artifacts-size). **(FREE SELF)**
|
||||
- [Repositories analytics](repositories_analytics/index.md): View overall activity of all projects with code coverage. **(PREMIUM)**
|
||||
- [Maximum artifacts size](../admin_area/settings/continuous_integration.md#maximum-artifacts-size).
|
||||
- [Repositories analytics](repositories_analytics/index.md): View overall activity of all projects with code coverage.
|
||||
- [Contribution analytics](contribution_analytics/index.md): View the contributions (pushes, merge requests,
|
||||
and issues) of group members. **(PREMIUM)**
|
||||
- [Issue analytics](issues_analytics/index.md): View a bar chart of your group's number of issues per month. **(PREMIUM)**
|
||||
and issues) of group members.
|
||||
- [Issue analytics](issues_analytics/index.md): View a bar chart of your group's number of issues per month.
|
||||
- Use GitLab as a [dependency proxy](../packages/dependency_proxy/index.md) for upstream Docker images.
|
||||
- [Epics](epics/index.md): Track groups of issues that share a theme. **(ULTIMATE)**
|
||||
- [Epics](epics/index.md): Track groups of issues that share a theme.
|
||||
- [Security Dashboard](../application_security/security_dashboard/index.md): View the vulnerabilities of all
|
||||
the projects in a group and its subgroups. **(ULTIMATE)**
|
||||
the projects in a group and its subgroups.
|
||||
- [Insights](insights/index.md): Configure insights like triage hygiene, issues created/closed per a given period, and
|
||||
average time for merge requests to be merged. **(ULTIMATE)**
|
||||
average time for merge requests to be merged.
|
||||
- [Webhooks](../project/integrations/webhooks.md).
|
||||
- [Kubernetes cluster integration](clusters/index.md).
|
||||
- [Audit Events](../../administration/audit_events.md#group-events). **(PREMIUM)**
|
||||
- [Audit Events](../../administration/audit_events.md#group-events).
|
||||
- [Pipelines quota](../admin_area/settings/continuous_integration.md): Keep track of the pipeline quota for the group.
|
||||
- [Integrations](../admin_area/settings/project_integration_management.md).
|
||||
- [Transfer a project into a group](../project/settings/index.md#transferring-an-existing-project-into-another-namespace).
|
||||
|
@ -778,7 +777,7 @@ To view the merge request approval rules UI for a group:
|
|||
- [Lock the sharing with group feature](#prevent-a-project-from-being-shared-with-groups).
|
||||
- [Enforce two-factor authentication (2FA)](../../security/two_factor_authentication.md#enforce-2fa-for-all-users-in-a-group): Enforce 2FA
|
||||
for all group members.
|
||||
- Namespaces [API](../../api/namespaces.md) and [Rake tasks](../../raketasks/features.md)..
|
||||
- Namespaces [API](../../api/namespaces.md) and [Rake tasks](../../raketasks/features.md).
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
|
|
|
@ -242,7 +242,7 @@ On subsequent visits, you should be able to go [sign in to GitLab.com with SAML]
|
|||
|
||||
### Configure user settings from SAML response
|
||||
|
||||
[Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/263661) in GitLab 13.7.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/263661) in GitLab 13.7.
|
||||
|
||||
GitLab allows setting certain user attributes based on values from the SAML response.
|
||||
This affects users created on first sign-in via Group SAML. Existing users'
|
||||
|
|
|
@ -7,7 +7,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
|
||||
# SCIM provisioning using SAML SSO for GitLab.com groups **(PREMIUM SAAS)**
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9388) in GitLab Premium 11.10.
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/9388) in GitLab 11.10.
|
||||
|
||||
System for Cross-domain Identity Management (SCIM), is an open standard that enables the
|
||||
automation of user provisioning. When SCIM is provisioned for a GitLab group, membership of
|
||||
|
|
|
@ -5,7 +5,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
|
|||
type: reference, howto, concepts
|
||||
---
|
||||
|
||||
# Subgroups
|
||||
# Subgroups **(FREE)**
|
||||
|
||||
> [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/2772) in GitLab 9.0.
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@ module Gitlab
|
|||
adapter_name.casecmp('postgresql') == 0
|
||||
end
|
||||
|
||||
# TODO: To be removed with GITLAB_LB_CONFIGURE_CONNECTION
|
||||
def db_config_with_default_pool_size
|
||||
db_config_object = scope.connection_db_config
|
||||
config = db_config_object
|
||||
|
@ -72,20 +73,6 @@ module Gitlab
|
|||
)
|
||||
end
|
||||
|
||||
# Disables prepared statements for the current database connection.
|
||||
def disable_prepared_statements
|
||||
db_config_object = scope.connection_db_config
|
||||
config = db_config_object.configuration_hash.merge(prepared_statements: false)
|
||||
|
||||
hash_config = ActiveRecord::DatabaseConfigurations::HashConfig.new(
|
||||
db_config_object.env_name,
|
||||
db_config_object.name,
|
||||
config
|
||||
)
|
||||
|
||||
scope.establish_connection(hash_config)
|
||||
end
|
||||
|
||||
# Check whether the underlying database is in read-only mode
|
||||
def db_read_only?
|
||||
pg_is_in_recovery =
|
||||
|
|
|
@ -14,20 +14,30 @@ module Gitlab
|
|||
end
|
||||
|
||||
def setup
|
||||
disable_prepared_statements
|
||||
configure_connection
|
||||
setup_load_balancer
|
||||
setup_service_discovery
|
||||
end
|
||||
|
||||
def disable_prepared_statements
|
||||
def configure_connection
|
||||
db_config_object = @model.connection_db_config
|
||||
config =
|
||||
db_config_object.configuration_hash.merge(prepared_statements: false)
|
||||
|
||||
hash =
|
||||
if Gitlab::Utils.to_boolean(ENV["GITLAB_LB_CONFIGURE_CONNECTION"], default: true)
|
||||
db_config_object.configuration_hash.merge(
|
||||
prepared_statements: false,
|
||||
pool: Gitlab::Database.default_pool_size
|
||||
)
|
||||
else
|
||||
db_config_object.configuration_hash.merge(
|
||||
prepared_statements: false
|
||||
)
|
||||
end
|
||||
|
||||
hash_config = ActiveRecord::DatabaseConfigurations::HashConfig.new(
|
||||
db_config_object.env_name,
|
||||
db_config_object.name,
|
||||
config
|
||||
hash
|
||||
)
|
||||
|
||||
@model.establish_connection(hash_config)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import { shallowMount } from '@vue/test-utils';
|
||||
import BoardFilteredSearch from '~/boards/components/board_filtered_search.vue';
|
||||
import BoardFilteredSearch from 'ee_else_ce/boards/components/board_filtered_search.vue';
|
||||
import IssueBoardFilteredSpec from '~/boards/components/issue_board_filtered_search.vue';
|
||||
import issueBoardFilters from '~/boards/issue_board_filters';
|
||||
import { mockTokens } from '../mock_data';
|
||||
|
@ -9,6 +9,8 @@ jest.mock('~/boards/issue_board_filters');
|
|||
describe('IssueBoardFilter', () => {
|
||||
let wrapper;
|
||||
|
||||
const findBoardsFilteredSearch = () => wrapper.findComponent(BoardFilteredSearch);
|
||||
|
||||
const createComponent = ({ epicFeatureAvailable = false } = {}) => {
|
||||
wrapper = shallowMount(IssueBoardFilteredSpec, {
|
||||
propsData: { fullPath: 'gitlab-org', boardType: 'group' },
|
||||
|
@ -40,13 +42,13 @@ describe('IssueBoardFilter', () => {
|
|||
});
|
||||
|
||||
it('finds BoardFilteredSearch', () => {
|
||||
expect(wrapper.find(BoardFilteredSearch).exists()).toBe(true);
|
||||
expect(findBoardsFilteredSearch().exists()).toBe(true);
|
||||
});
|
||||
|
||||
it('passes the correct tokens to BoardFilteredSearch', () => {
|
||||
const tokens = mockTokens(fetchLabelsSpy, fetchAuthorsSpy, wrapper.vm.fetchMilestones);
|
||||
|
||||
expect(wrapper.find(BoardFilteredSearch).props('tokens')).toEqual(tokens);
|
||||
expect(findBoardsFilteredSearch().props('tokens')).toEqual(tokens);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -9,6 +9,7 @@ RSpec.describe 'Database config initializer', :reestablished_active_record_base
|
|||
|
||||
before do
|
||||
allow(Gitlab::Runtime).to receive(:max_threads).and_return(max_threads)
|
||||
stub_env('GITLAB_LB_CONFIGURE_CONNECTION', 'false')
|
||||
end
|
||||
|
||||
let(:max_threads) { 8 }
|
||||
|
@ -41,6 +42,16 @@ RSpec.describe 'Database config initializer', :reestablished_active_record_base
|
|||
|
||||
expect(ActiveRecord::Base.connection_db_config.pool).to eq(18)
|
||||
end
|
||||
|
||||
context 'when GITLAB_LB_CONFIGURE_CONNECTION=true' do
|
||||
before do
|
||||
stub_env('GITLAB_LB_CONFIGURE_CONNECTION', 'true')
|
||||
end
|
||||
|
||||
it 'does not overwrite custom pool settings' do
|
||||
expect { subject }.not_to change { ActiveRecord::Base.connection_db_config.pool }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "when specifying headroom through an ENV variable" do
|
||||
|
|
|
@ -126,39 +126,6 @@ RSpec.describe Gitlab::Database::Connection do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#disable_prepared_statements', :reestablished_active_record_base do
|
||||
it 'disables prepared statements' do
|
||||
connection.scope.establish_connection(
|
||||
::Gitlab::Database.main.config.merge(prepared_statements: true)
|
||||
)
|
||||
|
||||
expect(connection.scope.connection.prepared_statements).to eq(true)
|
||||
|
||||
connection.disable_prepared_statements
|
||||
|
||||
expect(connection.scope.connection.prepared_statements).to eq(false)
|
||||
end
|
||||
|
||||
it 'retains the connection name' do
|
||||
connection.disable_prepared_statements
|
||||
|
||||
expect(connection.scope.connection_db_config.name).to eq('main')
|
||||
end
|
||||
|
||||
context 'with dynamic connection pool size' do
|
||||
before do
|
||||
connection.scope.establish_connection(connection.config.merge(pool: 7))
|
||||
end
|
||||
|
||||
it 'retains the set pool size' do
|
||||
connection.disable_prepared_statements
|
||||
|
||||
expect(connection.scope.connection.prepared_statements).to eq(false)
|
||||
expect(connection.scope.connection.pool.size).to eq(7)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#db_read_only?' do
|
||||
it 'detects a read-only database' do
|
||||
allow(connection.scope.connection)
|
||||
|
|
|
@ -7,7 +7,7 @@ RSpec.describe Gitlab::Database::LoadBalancing::Setup do
|
|||
it 'sets up the load balancer' do
|
||||
setup = described_class.new(ActiveRecord::Base)
|
||||
|
||||
expect(setup).to receive(:disable_prepared_statements)
|
||||
expect(setup).to receive(:configure_connection)
|
||||
expect(setup).to receive(:setup_load_balancer)
|
||||
expect(setup).to receive(:setup_service_discovery)
|
||||
|
||||
|
@ -15,11 +15,11 @@ RSpec.describe Gitlab::Database::LoadBalancing::Setup do
|
|||
end
|
||||
end
|
||||
|
||||
describe '#disable_prepared_statements' do
|
||||
it 'disables prepared statements and reconnects to the database' do
|
||||
describe '#configure_connection' do
|
||||
it 'configures pool, prepared statements and reconnects to the database' do
|
||||
config = double(
|
||||
:config,
|
||||
configuration_hash: { host: 'localhost' },
|
||||
configuration_hash: { host: 'localhost', pool: 2, prepared_statements: true },
|
||||
env_name: 'test',
|
||||
name: 'main'
|
||||
)
|
||||
|
@ -27,7 +27,11 @@ RSpec.describe Gitlab::Database::LoadBalancing::Setup do
|
|||
|
||||
expect(ActiveRecord::DatabaseConfigurations::HashConfig)
|
||||
.to receive(:new)
|
||||
.with('test', 'main', { host: 'localhost', prepared_statements: false })
|
||||
.with('test', 'main', {
|
||||
host: 'localhost',
|
||||
prepared_statements: false,
|
||||
pool: Gitlab::Database.default_pool_size
|
||||
})
|
||||
.and_call_original
|
||||
|
||||
# HashConfig doesn't implement its own #==, so we can't directly compare
|
||||
|
@ -36,7 +40,7 @@ RSpec.describe Gitlab::Database::LoadBalancing::Setup do
|
|||
.to receive(:establish_connection)
|
||||
.with(an_instance_of(ActiveRecord::DatabaseConfigurations::HashConfig))
|
||||
|
||||
described_class.new(model).disable_prepared_statements
|
||||
described_class.new(model).configure_connection
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue