Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
7263b05461
commit
88db57927a
13 changed files with 49 additions and 45 deletions
|
@ -88,6 +88,9 @@ export default {
|
||||||
|
|
||||||
return this.mr.preferredAutoMergeStrategy;
|
return this.mr.preferredAutoMergeStrategy;
|
||||||
},
|
},
|
||||||
|
ciStatus() {
|
||||||
|
return this.isPostMerge ? this.mr?.mergePipeline?.details?.status?.text : this.mr.ciStatus;
|
||||||
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
@ -97,7 +100,7 @@ export default {
|
||||||
:pipeline="pipeline"
|
:pipeline="pipeline"
|
||||||
:pipeline-coverage-delta="mr.pipelineCoverageDelta"
|
:pipeline-coverage-delta="mr.pipelineCoverageDelta"
|
||||||
:builds-with-coverage="mr.buildsWithCoverage"
|
:builds-with-coverage="mr.buildsWithCoverage"
|
||||||
:ci-status="mr.ciStatus"
|
:ci-status="ciStatus"
|
||||||
:has-ci="mr.hasCI"
|
:has-ci="mr.hasCI"
|
||||||
:pipeline-must-succeed="mr.onlyAllowMergeIfPipelineSucceeds"
|
:pipeline-must-succeed="mr.onlyAllowMergeIfPipelineSucceeds"
|
||||||
:source-branch="branch"
|
:source-branch="branch"
|
||||||
|
|
|
@ -23,6 +23,7 @@ table {
|
||||||
@include gl-text-gray-500;
|
@include gl-text-gray-500;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.md &:not(.code),
|
||||||
&.table {
|
&.table {
|
||||||
margin-bottom: $gl-padding;
|
margin-bottom: $gl-padding;
|
||||||
|
|
||||||
|
|
|
@ -160,8 +160,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
table:not(.code) {
|
table:not(.code) {
|
||||||
@extend .table;
|
|
||||||
@extend .table-bordered;
|
|
||||||
margin: 16px 0;
|
margin: 16px 0;
|
||||||
color: $gl-text-color;
|
color: $gl-text-color;
|
||||||
border: 0;
|
border: 0;
|
||||||
|
@ -172,9 +170,11 @@
|
||||||
tbody {
|
tbody {
|
||||||
background-color: $white;
|
background-color: $white;
|
||||||
|
|
||||||
td {
|
}
|
||||||
border-color: $gray-100;
|
|
||||||
}
|
td,
|
||||||
|
th {
|
||||||
|
border: 1px solid $border-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
tr {
|
tr {
|
||||||
|
|
|
@ -49,6 +49,7 @@ exceptions:
|
||||||
- ECS
|
- ECS
|
||||||
- EFS
|
- EFS
|
||||||
- EKS
|
- EKS
|
||||||
|
- ELB
|
||||||
- EOL
|
- EOL
|
||||||
- EXIF
|
- EXIF
|
||||||
- FAQ
|
- FAQ
|
||||||
|
@ -98,6 +99,7 @@ exceptions:
|
||||||
- LESS
|
- LESS
|
||||||
- LFS
|
- LFS
|
||||||
- LRU
|
- LRU
|
||||||
|
- LTM
|
||||||
- LTS
|
- LTS
|
||||||
- MIME
|
- MIME
|
||||||
- MIT
|
- MIT
|
||||||
|
@ -119,6 +121,7 @@ exceptions:
|
||||||
- PEM
|
- PEM
|
||||||
- PEP
|
- PEP
|
||||||
- PGP
|
- PGP
|
||||||
|
- PID
|
||||||
- PKCS
|
- PKCS
|
||||||
- PHP
|
- PHP
|
||||||
- PNG
|
- PNG
|
||||||
|
@ -129,6 +132,7 @@ exceptions:
|
||||||
- RAM
|
- RAM
|
||||||
- RBAC
|
- RBAC
|
||||||
- RDP
|
- RDP
|
||||||
|
- RDS
|
||||||
- REST
|
- REST
|
||||||
- RFC
|
- RFC
|
||||||
- RHEL
|
- RHEL
|
||||||
|
@ -140,6 +144,7 @@ exceptions:
|
||||||
- RVM
|
- RVM
|
||||||
- SAAS
|
- SAAS
|
||||||
- SAML
|
- SAML
|
||||||
|
- SAN
|
||||||
- SAST
|
- SAST
|
||||||
- SATA
|
- SATA
|
||||||
- SCIM
|
- SCIM
|
||||||
|
@ -173,6 +178,7 @@ exceptions:
|
||||||
- TODO
|
- TODO
|
||||||
- TOML
|
- TOML
|
||||||
- TTL
|
- TTL
|
||||||
|
- UID
|
||||||
- UDP
|
- UDP
|
||||||
- UID
|
- UID
|
||||||
- UNIX
|
- UNIX
|
||||||
|
|
|
@ -45,7 +45,7 @@ For more information, see the links shown on this page for each external provide
|
||||||
|
|
||||||
| Capability | SaaS | Self-Managed |
|
| Capability | SaaS | Self-Managed |
|
||||||
|-------------------------------------------------|-----------------------------------------|------------------------------------|
|
|-------------------------------------------------|-----------------------------------------|------------------------------------|
|
||||||
| **User Provisioning** | SCIM<br>JIT Provisioning | LDAP Sync |
|
| **User Provisioning** | SCIM<br>Just-In-Time (JIT) Provisioning | LDAP Sync |
|
||||||
| **User Detail Updating** (not group management) | Not Available | LDAP Sync |
|
| **User Detail Updating** (not group management) | Not Available | LDAP Sync |
|
||||||
| **Authentication** | SAML at top-level group (1 provider) | LDAP (multiple providers)<br>Generic OAuth2<br>SAML (only 1 permitted per unique provider)<br>Kerberos<br>JWT<br>Smartcard<br>OmniAuth Providers (only 1 permitted per unique provider) |
|
| **Authentication** | SAML at top-level group (1 provider) | LDAP (multiple providers)<br>Generic OAuth2<br>SAML (only 1 permitted per unique provider)<br>Kerberos<br>JWT<br>Smartcard<br>OmniAuth Providers (only 1 permitted per unique provider) |
|
||||||
| **Provider-to-GitLab Role Sync** | SAML Group Sync | LDAP Group Sync |
|
| **Provider-to-GitLab Role Sync** | SAML Group Sync | LDAP Group Sync |
|
||||||
|
|
|
@ -217,7 +217,7 @@ use the `hard` option, because (from the man page):
|
||||||
> use the soft option only when client responsiveness is more important than data integrity
|
> use the soft option only when client responsiveness is more important than data integrity
|
||||||
|
|
||||||
Other vendors make similar recommendations, including
|
Other vendors make similar recommendations, including
|
||||||
[SAP](http://wiki.scn.sap.com/wiki/x/PARnFQ) and NetApp's
|
[System Applications and Products in Data Processing (SAP)](http://wiki.scn.sap.com/wiki/x/PARnFQ) and NetApp's
|
||||||
[knowledge base](https://kb.netapp.com/Advice_and_Troubleshooting/Data_Storage_Software/ONTAP_OS/What_are_the_differences_between_hard_mount_and_soft_mount),
|
[knowledge base](https://kb.netapp.com/Advice_and_Troubleshooting/Data_Storage_Software/ONTAP_OS/What_are_the_differences_between_hard_mount_and_soft_mount),
|
||||||
they highlight that if the NFS client driver caches data, `soft` means there is no certainty if
|
they highlight that if the NFS client driver caches data, `soft` means there is no certainty if
|
||||||
writes by GitLab are actually on disk.
|
writes by GitLab are actually on disk.
|
||||||
|
|
|
@ -847,7 +847,7 @@ Investigate further if:
|
||||||
- `reply_time` is not current.
|
- `reply_time` is not current.
|
||||||
|
|
||||||
The `lsn` fields relate to which write-ahead-log segments have been replicated.
|
The `lsn` fields relate to which write-ahead-log segments have been replicated.
|
||||||
Run the following on the leader to find out the current LSN:
|
Run the following on the leader to find out the current Log Sequence Number (LSN):
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
echo 'SELECT pg_current_wal_lsn();' | gitlab-psql
|
echo 'SELECT pg_current_wal_lsn();' | gitlab-psql
|
||||||
|
@ -1248,7 +1248,7 @@ To fix the problem, ensure the loopback interface is included in the CIDR addres
|
||||||
1. [Reconfigure GitLab](../restart_gitlab.md#omnibus-gitlab-reconfigure) for the changes to take effect.
|
1. [Reconfigure GitLab](../restart_gitlab.md#omnibus-gitlab-reconfigure) for the changes to take effect.
|
||||||
1. Check that [all the replicas are synchronized](#check-replication-status)
|
1. Check that [all the replicas are synchronized](#check-replication-status)
|
||||||
|
|
||||||
### Errors in Patroni logs: the requested start point is ahead of the WAL flush position
|
### Errors in Patroni logs: the requested start point is ahead of the Write Ahead Log (WAL) flush position
|
||||||
|
|
||||||
This error indicates that the database is not replicating:
|
This error indicates that the database is not replicating:
|
||||||
|
|
||||||
|
|
|
@ -69,10 +69,10 @@ The key needs to be readable by the GitLab system user (`git` by default).
|
||||||
|
|
||||||
The key needs to be readable by the GitLab system user (`git` by default).
|
The key needs to be readable by the GitLab system user (`git` by default).
|
||||||
|
|
||||||
### How to convert S/MIME PKCS #12 / PFX format to PEM encoding
|
### How to convert S/MIME PKCS #12 format to PEM encoding
|
||||||
|
|
||||||
Typically S/MIME certificates are handled in binary PKCS #12 format (`.pfx` or `.p12`
|
Typically S/MIME certificates are handled in binary Public Key Cryptography Standards (PKCS) #12 format
|
||||||
extensions), which contain the following in a single encrypted file:
|
(`.pfx` or `.p12` extensions), which contain the following in a single encrypted file:
|
||||||
|
|
||||||
- Public certificate
|
- Public certificate
|
||||||
- Intermediate certificates (if any)
|
- Intermediate certificates (if any)
|
||||||
|
|
|
@ -7,7 +7,7 @@ module Gitlab
|
||||||
# "connection" method.
|
# "connection" method.
|
||||||
module ActiveRecordProxy
|
module ActiveRecordProxy
|
||||||
def connection
|
def connection
|
||||||
::Gitlab::Database::LoadBalancing.proxy
|
::Gitlab::Database::LoadBalancing.proxy || super
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import { mount } from '@vue/test-utils';
|
import { mount } from '@vue/test-utils';
|
||||||
import MockAdapter from 'axios-mock-adapter';
|
import MockAdapter from 'axios-mock-adapter';
|
||||||
|
import { extendedWrapper } from 'helpers/vue_test_utils_helper';
|
||||||
import axios from '~/lib/utils/axios_utils';
|
import axios from '~/lib/utils/axios_utils';
|
||||||
import ArtifactsApp from '~/vue_merge_request_widget/components/artifacts_list_app.vue';
|
import ArtifactsApp from '~/vue_merge_request_widget/components/artifacts_list_app.vue';
|
||||||
import DeploymentList from '~/vue_merge_request_widget/components/deployment/deployment_list.vue';
|
import DeploymentList from '~/vue_merge_request_widget/components/deployment/deployment_list.vue';
|
||||||
|
@ -12,12 +13,14 @@ describe('MrWidgetPipelineContainer', () => {
|
||||||
let mock;
|
let mock;
|
||||||
|
|
||||||
const factory = (props = {}) => {
|
const factory = (props = {}) => {
|
||||||
wrapper = mount(MrWidgetPipelineContainer, {
|
wrapper = extendedWrapper(
|
||||||
propsData: {
|
mount(MrWidgetPipelineContainer, {
|
||||||
mr: { ...mockStore },
|
propsData: {
|
||||||
...props,
|
mr: { ...mockStore },
|
||||||
},
|
...props,
|
||||||
});
|
},
|
||||||
|
}),
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
@ -30,6 +33,7 @@ describe('MrWidgetPipelineContainer', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const findDeploymentList = () => wrapper.findComponent(DeploymentList);
|
const findDeploymentList = () => wrapper.findComponent(DeploymentList);
|
||||||
|
const findCIErrorMessage = () => wrapper.findByTestId('ci-error-message');
|
||||||
|
|
||||||
describe('when pre merge', () => {
|
describe('when pre merge', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
@ -69,15 +73,21 @@ describe('MrWidgetPipelineContainer', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
factory({
|
factory({
|
||||||
isPostMerge: true,
|
isPostMerge: true,
|
||||||
|
mr: {
|
||||||
|
...mockStore,
|
||||||
|
pipeline: {},
|
||||||
|
ciStatus: undefined,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renders pipeline', () => {
|
it('renders pipeline', () => {
|
||||||
expect(wrapper.find(MrWidgetPipeline).exists()).toBe(true);
|
expect(wrapper.find(MrWidgetPipeline).exists()).toBe(true);
|
||||||
|
expect(findCIErrorMessage().exists()).toBe(false);
|
||||||
expect(wrapper.find(MrWidgetPipeline).props()).toMatchObject({
|
expect(wrapper.find(MrWidgetPipeline).props()).toMatchObject({
|
||||||
pipeline: mockStore.mergePipeline,
|
pipeline: mockStore.mergePipeline,
|
||||||
pipelineCoverageDelta: mockStore.pipelineCoverageDelta,
|
pipelineCoverageDelta: mockStore.pipelineCoverageDelta,
|
||||||
ciStatus: mockStore.ciStatus,
|
ciStatus: mockStore.mergePipeline.details.status.text,
|
||||||
hasCi: mockStore.hasCI,
|
hasCi: mockStore.hasCI,
|
||||||
sourceBranch: mockStore.targetBranch,
|
sourceBranch: mockStore.targetBranch,
|
||||||
sourceBranchLink: mockStore.targetBranch,
|
sourceBranchLink: mockStore.targetBranch,
|
||||||
|
@ -92,7 +102,6 @@ describe('MrWidgetPipelineContainer', () => {
|
||||||
targetBranch: 'Foo<script>alert("XSS")</script>',
|
targetBranch: 'Foo<script>alert("XSS")</script>',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(wrapper.find(MrWidgetPipeline).props().sourceBranchLink).toBe('Foo');
|
expect(wrapper.find(MrWidgetPipeline).props().sourceBranchLink).toBe('Foo');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -16,5 +16,12 @@ RSpec.describe Gitlab::Database::LoadBalancing::ActiveRecordProxy do
|
||||||
|
|
||||||
expect(dummy.new.connection).to eq(proxy)
|
expect(dummy.new.connection).to eq(proxy)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'returns a connection when no proxy is present' do
|
||||||
|
allow(Gitlab::Database::LoadBalancing).to receive(:proxy).and_return(nil)
|
||||||
|
|
||||||
|
expect(ActiveRecord::Base.connection)
|
||||||
|
.to eq(ActiveRecord::Base.retrieve_connection)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -6,9 +6,6 @@
|
||||||
- "./ee/spec/features/merge_trains/user_adds_merge_request_to_merge_train_spec.rb"
|
- "./ee/spec/features/merge_trains/user_adds_merge_request_to_merge_train_spec.rb"
|
||||||
- "./ee/spec/features/merge_trains/user_adds_to_merge_train_when_pipeline_succeeds_spec.rb"
|
- "./ee/spec/features/merge_trains/user_adds_to_merge_train_when_pipeline_succeeds_spec.rb"
|
||||||
- "./ee/spec/features/projects/pipelines/pipeline_spec.rb"
|
- "./ee/spec/features/projects/pipelines/pipeline_spec.rb"
|
||||||
- "./ee/spec/features/projects/settings/auto_rollback_spec.rb"
|
|
||||||
- "./ee/spec/features/projects/settings/pipeline_subscriptions_spec.rb"
|
|
||||||
- "./ee/spec/features/projects/settings/protected_environments_spec.rb"
|
|
||||||
- "./ee/spec/finders/ee/namespaces/projects_finder_spec.rb"
|
- "./ee/spec/finders/ee/namespaces/projects_finder_spec.rb"
|
||||||
- "./ee/spec/finders/security/findings_finder_spec.rb"
|
- "./ee/spec/finders/security/findings_finder_spec.rb"
|
||||||
- "./ee/spec/graphql/ee/resolvers/namespace_projects_resolver_spec.rb"
|
- "./ee/spec/graphql/ee/resolvers/namespace_projects_resolver_spec.rb"
|
||||||
|
@ -47,38 +44,23 @@
|
||||||
- "./ee/spec/services/ee/merge_requests/refresh_service_spec.rb"
|
- "./ee/spec/services/ee/merge_requests/refresh_service_spec.rb"
|
||||||
- "./ee/spec/workers/scan_security_report_secrets_worker_spec.rb"
|
- "./ee/spec/workers/scan_security_report_secrets_worker_spec.rb"
|
||||||
- "./spec/controllers/admin/runners_controller_spec.rb"
|
- "./spec/controllers/admin/runners_controller_spec.rb"
|
||||||
- "./spec/controllers/groups/runners_controller_spec.rb"
|
|
||||||
- "./spec/controllers/groups/settings/ci_cd_controller_spec.rb"
|
- "./spec/controllers/groups/settings/ci_cd_controller_spec.rb"
|
||||||
- "./spec/controllers/projects/merge_requests_controller_spec.rb"
|
- "./spec/controllers/projects/merge_requests_controller_spec.rb"
|
||||||
- "./spec/controllers/projects/runners_controller_spec.rb"
|
|
||||||
- "./spec/controllers/projects/settings/ci_cd_controller_spec.rb"
|
- "./spec/controllers/projects/settings/ci_cd_controller_spec.rb"
|
||||||
- "./spec/features/admin/admin_runners_spec.rb"
|
- "./spec/features/admin/admin_runners_spec.rb"
|
||||||
- "./spec/features/groups/settings/ci_cd_spec.rb"
|
|
||||||
- "./spec/features/ide/user_opens_merge_request_spec.rb"
|
- "./spec/features/ide/user_opens_merge_request_spec.rb"
|
||||||
- "./spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb"
|
- "./spec/features/merge_request/user_sees_merge_request_pipelines_spec.rb"
|
||||||
- "./spec/features/merge_request/user_sees_merge_widget_spec.rb"
|
- "./spec/features/merge_request/user_sees_merge_widget_spec.rb"
|
||||||
- "./spec/features/merge_request/user_sees_pipelines_from_forked_project_spec.rb"
|
|
||||||
- "./spec/features/merge_request/user_sees_pipelines_spec.rb"
|
|
||||||
- "./spec/features/project_group_variables_spec.rb"
|
|
||||||
- "./spec/features/project_variables_spec.rb"
|
|
||||||
- "./spec/features/projects/badges/list_spec.rb"
|
|
||||||
- "./spec/features/projects/infrastructure_registry_spec.rb"
|
- "./spec/features/projects/infrastructure_registry_spec.rb"
|
||||||
- "./spec/features/projects/jobs_spec.rb"
|
- "./spec/features/projects/jobs_spec.rb"
|
||||||
- "./spec/features/projects/pipelines/pipeline_spec.rb"
|
- "./spec/features/projects/pipelines/pipeline_spec.rb"
|
||||||
- "./spec/features/projects/pipelines/pipelines_spec.rb"
|
- "./spec/features/projects/pipelines/pipelines_spec.rb"
|
||||||
- "./spec/features/projects/settings/pipelines_settings_spec.rb"
|
|
||||||
- "./spec/features/security/project/internal_access_spec.rb"
|
|
||||||
- "./spec/features/security/project/private_access_spec.rb"
|
|
||||||
- "./spec/features/security/project/public_access_spec.rb"
|
|
||||||
- "./spec/features/triggers_spec.rb"
|
|
||||||
- "./spec/finders/ci/pipelines_for_merge_request_finder_spec.rb"
|
- "./spec/finders/ci/pipelines_for_merge_request_finder_spec.rb"
|
||||||
- "./spec/finders/ci/runners_finder_spec.rb"
|
- "./spec/finders/ci/runners_finder_spec.rb"
|
||||||
- "./spec/frontend/fixtures/runner.rb"
|
- "./spec/frontend/fixtures/runner.rb"
|
||||||
- "./spec/graphql/mutations/ci/runner/delete_spec.rb"
|
- "./spec/graphql/mutations/ci/runner/delete_spec.rb"
|
||||||
- "./spec/graphql/resolvers/ci/group_runners_resolver_spec.rb"
|
- "./spec/graphql/resolvers/ci/group_runners_resolver_spec.rb"
|
||||||
- "./spec/graphql/resolvers/ci/job_token_scope_resolver_spec.rb"
|
|
||||||
- "./spec/graphql/resolvers/merge_request_pipelines_resolver_spec.rb"
|
- "./spec/graphql/resolvers/merge_request_pipelines_resolver_spec.rb"
|
||||||
- "./spec/graphql/types/ci/job_token_scope_type_spec.rb"
|
|
||||||
- "./spec/lib/api/entities/package_spec.rb"
|
- "./spec/lib/api/entities/package_spec.rb"
|
||||||
- "./spec/lib/gitlab/background_migration/migrate_legacy_artifacts_spec.rb"
|
- "./spec/lib/gitlab/background_migration/migrate_legacy_artifacts_spec.rb"
|
||||||
- "./spec/mailers/emails/pipelines_spec.rb"
|
- "./spec/mailers/emails/pipelines_spec.rb"
|
||||||
|
@ -105,8 +87,6 @@
|
||||||
- "./spec/requests/api/commit_statuses_spec.rb"
|
- "./spec/requests/api/commit_statuses_spec.rb"
|
||||||
- "./spec/requests/api/graphql/group_query_spec.rb"
|
- "./spec/requests/api/graphql/group_query_spec.rb"
|
||||||
- "./spec/requests/api/graphql/merge_request/merge_request_spec.rb"
|
- "./spec/requests/api/graphql/merge_request/merge_request_spec.rb"
|
||||||
- "./spec/requests/api/graphql/mutations/ci/job_token_scope/add_project_spec.rb"
|
|
||||||
- "./spec/requests/api/graphql/mutations/ci/job_token_scope/remove_project_spec.rb"
|
|
||||||
- "./spec/requests/api/graphql/mutations/merge_requests/create_spec.rb"
|
- "./spec/requests/api/graphql/mutations/merge_requests/create_spec.rb"
|
||||||
- "./spec/requests/api/graphql/packages/composer_spec.rb"
|
- "./spec/requests/api/graphql/packages/composer_spec.rb"
|
||||||
- "./spec/requests/api/graphql/packages/conan_spec.rb"
|
- "./spec/requests/api/graphql/packages/conan_spec.rb"
|
||||||
|
@ -132,8 +112,6 @@
|
||||||
- "./spec/services/merge_requests/refresh_service_spec.rb"
|
- "./spec/services/merge_requests/refresh_service_spec.rb"
|
||||||
- "./spec/support/shared_examples/ci/pipeline_email_shared_examples.rb"
|
- "./spec/support/shared_examples/ci/pipeline_email_shared_examples.rb"
|
||||||
- "./spec/support/shared_examples/features/packages_shared_examples.rb"
|
- "./spec/support/shared_examples/features/packages_shared_examples.rb"
|
||||||
- "./spec/support/shared_examples/features/search_settings_shared_examples.rb"
|
|
||||||
- "./spec/support/shared_examples/features/variable_list_shared_examples.rb"
|
|
||||||
- "./spec/support/shared_examples/models/concerns/limitable_shared_examples.rb"
|
- "./spec/support/shared_examples/models/concerns/limitable_shared_examples.rb"
|
||||||
- "./spec/support/shared_examples/requests/api/graphql/packages/group_and_project_packages_list_shared_examples.rb"
|
- "./spec/support/shared_examples/requests/api/graphql/packages/group_and_project_packages_list_shared_examples.rb"
|
||||||
- "./spec/support/shared_examples/requests/api/graphql/packages/package_details_shared_examples.rb"
|
- "./spec/support/shared_examples/requests/api/graphql/packages/package_details_shared_examples.rb"
|
||||||
|
|
|
@ -46,7 +46,7 @@ module Database
|
||||||
if schemas.include?(:gitlab_ci) && schemas.include?(:gitlab_main)
|
if schemas.include?(:gitlab_ci) && schemas.include?(:gitlab_main)
|
||||||
Thread.current[:has_cross_join_exception] = true
|
Thread.current[:has_cross_join_exception] = true
|
||||||
raise CrossJoinAcrossUnsupportedTablesError,
|
raise CrossJoinAcrossUnsupportedTablesError,
|
||||||
"Unsupported cross-join across '#{tables.join(", ")}' modifying '#{schemas.to_a.join(", ")}' discovered " \
|
"Unsupported cross-join across '#{tables.join(", ")}' querying '#{schemas.to_a.join(", ")}' discovered " \
|
||||||
"when executing query '#{sql}'. Please refer to https://docs.gitlab.com/ee/development/database/multiple_databases.html#removing-joins-between-ci_-and-non-ci_-tables for details on how to resolve this exception."
|
"when executing query '#{sql}'. Please refer to https://docs.gitlab.com/ee/development/database/multiple_databases.html#removing-joins-between-ci_-and-non-ci_-tables for details on how to resolve this exception."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue