Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
0daacd8353
commit
74ad68a3c4
|
|
@ -20,8 +20,8 @@ FactoryBot/ExcessiveCreateList:
|
||||||
- 'spec/features/issues/user_edits_issue_spec.rb'
|
- 'spec/features/issues/user_edits_issue_spec.rb'
|
||||||
- 'spec/features/issues/user_scrolls_to_deeplinked_note_spec.rb'
|
- 'spec/features/issues/user_scrolls_to_deeplinked_note_spec.rb'
|
||||||
- 'spec/features/projects/container_registry_spec.rb'
|
- 'spec/features/projects/container_registry_spec.rb'
|
||||||
- 'spec/features/projects/work_items/work_item_spec.rb'
|
|
||||||
- 'spec/features/users/overview_spec.rb'
|
- 'spec/features/users/overview_spec.rb'
|
||||||
|
- 'spec/features/work_items/work_item_spec.rb'
|
||||||
- 'spec/frontend/fixtures/timelogs.rb'
|
- 'spec/frontend/fixtures/timelogs.rb'
|
||||||
- 'spec/lib/gitlab/database/background_migration/batched_migration_spec.rb'
|
- 'spec/lib/gitlab/database/background_migration/batched_migration_spec.rb'
|
||||||
- 'spec/lib/gitlab/database/consistency_checker_spec.rb'
|
- 'spec/lib/gitlab/database/consistency_checker_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -808,8 +808,6 @@ RSpec/BeforeAllRoleAssignment:
|
||||||
- 'spec/features/projects/terraform_spec.rb'
|
- 'spec/features/projects/terraform_spec.rb'
|
||||||
- 'spec/features/projects/user_sees_user_popover_spec.rb'
|
- 'spec/features/projects/user_sees_user_popover_spec.rb'
|
||||||
- 'spec/features/projects/user_views_empty_project_spec.rb'
|
- 'spec/features/projects/user_views_empty_project_spec.rb'
|
||||||
- 'spec/features/projects/work_items/work_item_children_spec.rb'
|
|
||||||
- 'spec/features/projects/work_items/work_item_spec.rb'
|
|
||||||
- 'spec/features/promotion_spec.rb'
|
- 'spec/features/promotion_spec.rb'
|
||||||
- 'spec/features/registrations/oauth_registration_spec.rb'
|
- 'spec/features/registrations/oauth_registration_spec.rb'
|
||||||
- 'spec/features/reportable_note/snippets_spec.rb'
|
- 'spec/features/reportable_note/snippets_spec.rb'
|
||||||
|
|
@ -824,6 +822,8 @@ RSpec/BeforeAllRoleAssignment:
|
||||||
- 'spec/features/search/user_uses_header_search_field_spec.rb'
|
- 'spec/features/search/user_uses_header_search_field_spec.rb'
|
||||||
- 'spec/features/user_can_display_performance_bar_spec.rb'
|
- 'spec/features/user_can_display_performance_bar_spec.rb'
|
||||||
- 'spec/features/user_sorts_things_spec.rb'
|
- 'spec/features/user_sorts_things_spec.rb'
|
||||||
|
- 'spec/features/work_items/work_item_children_spec.rb'
|
||||||
|
- 'spec/features/work_items/work_item_spec.rb'
|
||||||
- 'spec/finders/alert_management/alerts_finder_spec.rb'
|
- 'spec/finders/alert_management/alerts_finder_spec.rb'
|
||||||
- 'spec/finders/autocomplete/deploy_keys_with_write_access_finder_spec.rb'
|
- 'spec/finders/autocomplete/deploy_keys_with_write_access_finder_spec.rb'
|
||||||
- 'spec/finders/autocomplete/routes_finder_spec.rb'
|
- 'spec/finders/autocomplete/routes_finder_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -2135,7 +2135,6 @@ RSpec/FeatureCategory:
|
||||||
- 'spec/lib/gitlab/ci/badge/coverage/report_spec.rb'
|
- 'spec/lib/gitlab/ci/badge/coverage/report_spec.rb'
|
||||||
- 'spec/lib/gitlab/ci/badge/coverage/template_spec.rb'
|
- 'spec/lib/gitlab/ci/badge/coverage/template_spec.rb'
|
||||||
- 'spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb'
|
- 'spec/lib/gitlab/ci/badge/pipeline/metadata_spec.rb'
|
||||||
- 'spec/lib/gitlab/ci/badge/pipeline/status_spec.rb'
|
|
||||||
- 'spec/lib/gitlab/ci/badge/pipeline/template_spec.rb'
|
- 'spec/lib/gitlab/ci/badge/pipeline/template_spec.rb'
|
||||||
- 'spec/lib/gitlab/ci/badge/release/latest_release_spec.rb'
|
- 'spec/lib/gitlab/ci/badge/release/latest_release_spec.rb'
|
||||||
- 'spec/lib/gitlab/ci/badge/release/metadata_spec.rb'
|
- 'spec/lib/gitlab/ci/badge/release/metadata_spec.rb'
|
||||||
|
|
@ -4155,7 +4154,6 @@ RSpec/FeatureCategory:
|
||||||
- 'spec/views/projects/imports/new.html.haml_spec.rb'
|
- 'spec/views/projects/imports/new.html.haml_spec.rb'
|
||||||
- 'spec/views/projects/issues/_related_branches.html.haml_spec.rb'
|
- 'spec/views/projects/issues/_related_branches.html.haml_spec.rb'
|
||||||
- 'spec/views/projects/issues/show.html.haml_spec.rb'
|
- 'spec/views/projects/issues/show.html.haml_spec.rb'
|
||||||
- 'spec/views/projects/jobs/_generic_commit_status.html.haml_spec.rb'
|
|
||||||
- 'spec/views/projects/jobs/show.html.haml_spec.rb'
|
- 'spec/views/projects/jobs/show.html.haml_spec.rb'
|
||||||
- 'spec/views/projects/merge_requests/_commits.html.haml_spec.rb'
|
- 'spec/views/projects/merge_requests/_commits.html.haml_spec.rb'
|
||||||
- 'spec/views/projects/merge_requests/edit.html.haml_spec.rb'
|
- 'spec/views/projects/merge_requests/edit.html.haml_spec.rb'
|
||||||
|
|
|
||||||
|
|
@ -85,9 +85,9 @@ RSpec/NoExpectationExample:
|
||||||
- 'spec/features/projects/environments/environment_spec.rb'
|
- 'spec/features/projects/environments/environment_spec.rb'
|
||||||
- 'spec/features/projects/files/template_selector_menu_spec.rb'
|
- 'spec/features/projects/files/template_selector_menu_spec.rb'
|
||||||
- 'spec/features/projects/files/undo_template_spec.rb'
|
- 'spec/features/projects/files/undo_template_spec.rb'
|
||||||
- 'spec/features/projects/work_items/linked_work_items_spec.rb'
|
|
||||||
- 'spec/features/user_settings/ssh_keys_spec.rb'
|
- 'spec/features/user_settings/ssh_keys_spec.rb'
|
||||||
- 'spec/features/users/login_spec.rb'
|
- 'spec/features/users/login_spec.rb'
|
||||||
|
- 'spec/features/work_items/linked_work_items_spec.rb'
|
||||||
- 'spec/frontend/fixtures/issues.rb'
|
- 'spec/frontend/fixtures/issues.rb'
|
||||||
- 'spec/frontend/fixtures/listbox.rb'
|
- 'spec/frontend/fixtures/listbox.rb'
|
||||||
- 'spec/frontend/fixtures/merge_requests.rb'
|
- 'spec/frontend/fixtures/merge_requests.rb'
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ SidekiqLoadBalancing/WorkerDataConsistency:
|
||||||
- 'app/workers/bulk_imports/pipeline_batch_worker.rb'
|
- 'app/workers/bulk_imports/pipeline_batch_worker.rb'
|
||||||
- 'app/workers/bulk_imports/relation_batch_export_worker.rb'
|
- 'app/workers/bulk_imports/relation_batch_export_worker.rb'
|
||||||
- 'app/workers/bulk_imports/stale_import_worker.rb'
|
- 'app/workers/bulk_imports/stale_import_worker.rb'
|
||||||
- 'app/workers/chat_notification_worker.rb'
|
|
||||||
- 'app/workers/ci/archive_traces_cron_worker.rb'
|
- 'app/workers/ci/archive_traces_cron_worker.rb'
|
||||||
- 'app/workers/ci/build_prepare_worker.rb'
|
- 'app/workers/ci/build_prepare_worker.rb'
|
||||||
- 'app/workers/ci/build_schedule_worker.rb'
|
- 'app/workers/ci/build_schedule_worker.rb'
|
||||||
|
|
@ -124,8 +123,6 @@ SidekiqLoadBalancing/WorkerDataConsistency:
|
||||||
- 'app/workers/incident_management/close_incident_worker.rb'
|
- 'app/workers/incident_management/close_incident_worker.rb'
|
||||||
- 'app/workers/incident_management/pager_duty/process_incident_worker.rb'
|
- 'app/workers/incident_management/pager_duty/process_incident_worker.rb'
|
||||||
- 'app/workers/incident_management/process_alert_worker_v2.rb'
|
- 'app/workers/incident_management/process_alert_worker_v2.rb'
|
||||||
- 'app/workers/integrations/execute_worker.rb'
|
|
||||||
- 'app/workers/integrations/irker_worker.rb'
|
|
||||||
- 'app/workers/integrations/propagate_integration_descendant_worker.rb'
|
- 'app/workers/integrations/propagate_integration_descendant_worker.rb'
|
||||||
- 'app/workers/invalid_gpg_signature_update_worker.rb'
|
- 'app/workers/invalid_gpg_signature_update_worker.rb'
|
||||||
- 'app/workers/issuable/label_links_destroy_worker.rb'
|
- 'app/workers/issuable/label_links_destroy_worker.rb'
|
||||||
|
|
@ -135,8 +132,6 @@ SidekiqLoadBalancing/WorkerDataConsistency:
|
||||||
- 'app/workers/issues/close_worker.rb'
|
- 'app/workers/issues/close_worker.rb'
|
||||||
- 'app/workers/issues/placement_worker.rb'
|
- 'app/workers/issues/placement_worker.rb'
|
||||||
- 'app/workers/issues/rebalancing_worker.rb'
|
- 'app/workers/issues/rebalancing_worker.rb'
|
||||||
- 'app/workers/jira_connect/forward_event_worker.rb'
|
|
||||||
- 'app/workers/jira_connect/retry_request_worker.rb'
|
|
||||||
- 'app/workers/loose_foreign_keys/cleanup_worker.rb'
|
- 'app/workers/loose_foreign_keys/cleanup_worker.rb'
|
||||||
- 'app/workers/mail_scheduler/issue_due_worker.rb'
|
- 'app/workers/mail_scheduler/issue_due_worker.rb'
|
||||||
- 'app/workers/mail_scheduler/notification_service_worker.rb'
|
- 'app/workers/mail_scheduler/notification_service_worker.rb'
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
e39eef132f47d2c679e0cc5d199406084135540b
|
a3bc04233c29d8368ac509e8c360bf82f104a2ce
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,7 @@ function mountBoardApp(el) {
|
||||||
hasIssueWeightsFeature: parseBoolean(el.dataset.weightFeatureAvailable),
|
hasIssueWeightsFeature: parseBoolean(el.dataset.weightFeatureAvailable),
|
||||||
hasIssuableHealthStatusFeature: parseBoolean(el.dataset.healthStatusFeatureAvailable),
|
hasIssuableHealthStatusFeature: parseBoolean(el.dataset.healthStatusFeatureAvailable),
|
||||||
hasSubepicsFeature: parseBoolean(el.dataset.subEpicsFeatureAvailable),
|
hasSubepicsFeature: parseBoolean(el.dataset.subEpicsFeatureAvailable),
|
||||||
|
hasLinkedItemsEpicsFeature: parseBoolean(el.dataset.hasLinkedItemsEpicsFeature),
|
||||||
},
|
},
|
||||||
render: (createComponent) => createComponent(BoardApp),
|
render: (createComponent) => createComponent(BoardApp),
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -118,6 +118,7 @@ export async function mountIssuesListApp() {
|
||||||
wiIssuesListPath,
|
wiIssuesListPath,
|
||||||
wiLabelsManagePath,
|
wiLabelsManagePath,
|
||||||
wiReportAbusePath,
|
wiReportAbusePath,
|
||||||
|
hasLinkedItemsEpicsFeature,
|
||||||
} = el.dataset;
|
} = el.dataset;
|
||||||
|
|
||||||
return new Vue({
|
return new Vue({
|
||||||
|
|
@ -202,6 +203,7 @@ export async function mountIssuesListApp() {
|
||||||
labelsManagePath: wiLabelsManagePath,
|
labelsManagePath: wiLabelsManagePath,
|
||||||
reportAbusePath: wiReportAbusePath,
|
reportAbusePath: wiReportAbusePath,
|
||||||
hasSubepicsFeature: false,
|
hasSubepicsFeature: false,
|
||||||
|
hasLinkedItemsEpicsFeature: parseBoolean(hasLinkedItemsEpicsFeature),
|
||||||
},
|
},
|
||||||
render: (createComponent) => createComponent(IssuesListApp),
|
render: (createComponent) => createComponent(IssuesListApp),
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -104,7 +104,13 @@ export default {
|
||||||
WorkItemAbuseModal,
|
WorkItemAbuseModal,
|
||||||
},
|
},
|
||||||
mixins: [glFeatureFlagMixin()],
|
mixins: [glFeatureFlagMixin()],
|
||||||
inject: ['fullPath', 'reportAbusePath', 'groupPath', 'hasSubepicsFeature'],
|
inject: [
|
||||||
|
'fullPath',
|
||||||
|
'reportAbusePath',
|
||||||
|
'groupPath',
|
||||||
|
'hasSubepicsFeature',
|
||||||
|
'hasLinkedItemsEpicsFeature',
|
||||||
|
],
|
||||||
props: {
|
props: {
|
||||||
isModal: {
|
isModal: {
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
|
|
@ -374,7 +380,9 @@ export default {
|
||||||
return !this.isModal && !this.editMode && !this.isDrawer;
|
return !this.isModal && !this.editMode && !this.isDrawer;
|
||||||
},
|
},
|
||||||
workItemLinkedItems() {
|
workItemLinkedItems() {
|
||||||
return this.isWidgetPresent(WIDGET_TYPE_LINKED_ITEMS);
|
return this.workItemType === WORK_ITEM_TYPE_VALUE_EPIC
|
||||||
|
? this.isWidgetPresent(WIDGET_TYPE_LINKED_ITEMS) && this.hasLinkedItemsEpicsFeature
|
||||||
|
: this.isWidgetPresent(WIDGET_TYPE_LINKED_ITEMS);
|
||||||
},
|
},
|
||||||
showWorkItemTree() {
|
showWorkItemTree() {
|
||||||
return this.isWidgetPresent(WIDGET_TYPE_HIERARCHY) && this.allowedChildTypes?.length > 0;
|
return this.isWidgetPresent(WIDGET_TYPE_HIERARCHY) && this.allowedChildTypes?.length > 0;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import { GlToast } from '@gitlab/ui';
|
import { GlToast } from '@gitlab/ui';
|
||||||
import { apolloProvider } from '~/graphql_shared/issuable_client';
|
import { apolloProvider } from '~/graphql_shared/issuable_client';
|
||||||
|
import { parseBoolean } from '~/lib/utils/common_utils';
|
||||||
import WorkItemLinks from './work_item_links.vue';
|
import WorkItemLinks from './work_item_links.vue';
|
||||||
|
|
||||||
Vue.use(GlToast);
|
Vue.use(GlToast);
|
||||||
|
|
@ -25,6 +26,7 @@ export default function initWorkItemLinks() {
|
||||||
wiLabelsManagePath,
|
wiLabelsManagePath,
|
||||||
wiNewCommentTemplatePaths,
|
wiNewCommentTemplatePaths,
|
||||||
wiReportAbusePath,
|
wiReportAbusePath,
|
||||||
|
hasLinkedItemsEpicsFeature,
|
||||||
} = workItemLinksRoot.dataset;
|
} = workItemLinksRoot.dataset;
|
||||||
|
|
||||||
return new Vue({
|
return new Vue({
|
||||||
|
|
@ -45,6 +47,7 @@ export default function initWorkItemLinks() {
|
||||||
labelsManagePath: wiLabelsManagePath,
|
labelsManagePath: wiLabelsManagePath,
|
||||||
newCommentTemplatePaths: JSON.parse(wiNewCommentTemplatePaths),
|
newCommentTemplatePaths: JSON.parse(wiNewCommentTemplatePaths),
|
||||||
reportAbusePath: wiReportAbusePath,
|
reportAbusePath: wiReportAbusePath,
|
||||||
|
hasLinkedItemsEpicsFeature: parseBoolean(hasLinkedItemsEpicsFeature),
|
||||||
},
|
},
|
||||||
render: (createElement) =>
|
render: (createElement) =>
|
||||||
createElement(WorkItemLinks, {
|
createElement(WorkItemLinks, {
|
||||||
|
|
|
||||||
|
|
@ -132,6 +132,7 @@ export default {
|
||||||
v-gl-modal="'time-tracking-report'"
|
v-gl-modal="'time-tracking-report'"
|
||||||
v-gl-tooltip="s__('TimeTracking|View time tracking report')"
|
v-gl-tooltip="s__('TimeTracking|View time tracking report')"
|
||||||
variant="link"
|
variant="link"
|
||||||
|
class="!gl-text-sm"
|
||||||
data-testid="view-time-spent-button"
|
data-testid="view-time-spent-button"
|
||||||
>
|
>
|
||||||
{{ humanTotalTimeSpent }}
|
{{ humanTotalTimeSpent }}
|
||||||
|
|
@ -152,6 +153,7 @@ export default {
|
||||||
v-gl-modal="$options.setTimeEstimateModalId"
|
v-gl-modal="$options.setTimeEstimateModalId"
|
||||||
v-gl-tooltip="s__('TimeTracking|Set estimate')"
|
v-gl-tooltip="s__('TimeTracking|Set estimate')"
|
||||||
variant="link"
|
variant="link"
|
||||||
|
class="!gl-text-sm"
|
||||||
data-testid="set-estimate-button"
|
data-testid="set-estimate-button"
|
||||||
>
|
>
|
||||||
{{ humanTimeEstimate }}
|
{{ humanTimeEstimate }}
|
||||||
|
|
@ -163,7 +165,7 @@ export default {
|
||||||
<gl-button
|
<gl-button
|
||||||
v-else-if="canUpdate"
|
v-else-if="canUpdate"
|
||||||
v-gl-modal="$options.setTimeEstimateModalId"
|
v-gl-modal="$options.setTimeEstimateModalId"
|
||||||
class="gl-ml-auto"
|
class="gl-ml-auto !gl-text-sm"
|
||||||
variant="link"
|
variant="link"
|
||||||
data-testid="add-estimate-button"
|
data-testid="add-estimate-button"
|
||||||
>
|
>
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,7 @@ export const initWorkItemsRoot = ({ workItemType, workspaceType } = {}) => {
|
||||||
canBulkEditEpics,
|
canBulkEditEpics,
|
||||||
groupIssuesPath,
|
groupIssuesPath,
|
||||||
labelsFetchPath,
|
labelsFetchPath,
|
||||||
|
hasLinkedItemsEpicsFeature,
|
||||||
} = el.dataset;
|
} = el.dataset;
|
||||||
|
|
||||||
const isGroup = workspaceType === WORKSPACE_GROUP;
|
const isGroup = workspaceType === WORKSPACE_GROUP;
|
||||||
|
|
@ -125,6 +126,7 @@ export const initWorkItemsRoot = ({ workItemType, workspaceType } = {}) => {
|
||||||
canBulkEditEpics: parseBoolean(canBulkEditEpics),
|
canBulkEditEpics: parseBoolean(canBulkEditEpics),
|
||||||
groupIssuesPath,
|
groupIssuesPath,
|
||||||
labelsFetchPath,
|
labelsFetchPath,
|
||||||
|
hasLinkedItemsEpicsFeature: parseBoolean(hasLinkedItemsEpicsFeature),
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
performanceMarkAndMeasure({
|
performanceMarkAndMeasure({
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,14 @@ module StreamDiffs
|
||||||
response.stream.close
|
response.stream.close
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def request
|
||||||
|
# We only need to do this in rapid diffs streaming endpoints
|
||||||
|
# as calling `request.format` (which can happen when rendering view components
|
||||||
|
# but can possibly happen in other places as well) can raise an exception
|
||||||
|
# while streaming diffs.
|
||||||
|
Request.new(super)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def rapid_diffs_enabled?
|
def rapid_diffs_enabled?
|
||||||
|
|
@ -50,4 +58,10 @@ module StreamDiffs
|
||||||
layout: false
|
layout: false
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
class Request < SimpleDelegator
|
||||||
|
def format
|
||||||
|
Mime::Type.lookup("text/html")
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -270,11 +270,7 @@ module EventsHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def event_wiki_page_target_url(event)
|
def event_wiki_page_target_url(event)
|
||||||
if event.project_id.present?
|
project_wiki_url(event.project, event.target&.canonical_slug || Wiki::HOMEPAGE) if event.project_id.present?
|
||||||
project_wiki_url(event.project, event.target&.canonical_slug || Wiki::HOMEPAGE)
|
|
||||||
elsif event.group_id.present?
|
|
||||||
group_wiki_url(event.group, event.target&.canonical_slug || Wiki::HOMEPAGE)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def event_note_title_html(event)
|
def event_note_title_html(event)
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ module CommitSignature
|
||||||
|
|
||||||
def reverified_status
|
def reverified_status
|
||||||
return verification_status unless Feature.enabled?(:check_for_mailmapped_commit_emails, project)
|
return verification_status unless Feature.enabled?(:check_for_mailmapped_commit_emails, project)
|
||||||
return verification_status unless verified? && ssh?
|
return verification_status unless verified_ssh? || verified_system?
|
||||||
|
|
||||||
verified_emails = signed_by_user&.verified_emails
|
verified_emails = signed_by_user&.verified_emails
|
||||||
if verified_emails&.exclude?(commit.author_email)
|
if verified_emails&.exclude?(commit.author_email)
|
||||||
|
|
@ -53,4 +53,10 @@ module CommitSignature
|
||||||
verification_status
|
verification_status
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def verified_ssh?
|
||||||
|
verified? && ssh?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -24,4 +24,4 @@
|
||||||
%th
|
%th
|
||||||
%tbody= yield
|
%tbody= yield
|
||||||
|
|
||||||
= paginate @protected_tags, theme: 'gitlab'
|
= paginate @protected_tags, theme: 'gitlab', params: { anchor: 'js-protected-tags-settings' }
|
||||||
|
|
|
||||||
|
|
@ -34,4 +34,4 @@
|
||||||
= content_for :create_protected_branch
|
= content_for :create_protected_branch
|
||||||
|
|
||||||
- c.with_pagination do
|
- c.with_pagination do
|
||||||
= paginate @protected_branches, theme: 'gitlab'
|
= paginate @protected_branches, theme: 'gitlab', params: { anchor: 'js-protected-branches-settings' }
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
class ChatNotificationWorker # rubocop:disable Scalability/IdempotentWorker
|
class ChatNotificationWorker # rubocop:disable Scalability/IdempotentWorker
|
||||||
include ApplicationWorker
|
include ApplicationWorker
|
||||||
|
|
||||||
data_consistency :always
|
data_consistency :sticky
|
||||||
|
|
||||||
TimeoutExceeded = Class.new(StandardError)
|
TimeoutExceeded = Class.new(StandardError)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ module Integrations
|
||||||
class ExecuteWorker # rubocop:disable Scalability/IdempotentWorker
|
class ExecuteWorker # rubocop:disable Scalability/IdempotentWorker
|
||||||
include ApplicationWorker
|
include ApplicationWorker
|
||||||
|
|
||||||
data_consistency :always
|
data_consistency :delayed
|
||||||
sidekiq_options retry: 3
|
sidekiq_options retry: 3
|
||||||
sidekiq_options dead: false
|
sidekiq_options dead: false
|
||||||
feature_category :integrations
|
feature_category :integrations
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ module Integrations
|
||||||
class IrkerWorker # rubocop:disable Scalability/IdempotentWorker
|
class IrkerWorker # rubocop:disable Scalability/IdempotentWorker
|
||||||
include ApplicationWorker
|
include ApplicationWorker
|
||||||
|
|
||||||
data_consistency :always
|
data_consistency :sticky
|
||||||
sidekiq_options retry: 3
|
sidekiq_options retry: 3
|
||||||
feature_category :integrations
|
feature_category :integrations
|
||||||
urgency :low
|
urgency :low
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ module JiraConnect
|
||||||
class ForwardEventWorker # rubocop:disable Scalability/IdempotentWorker
|
class ForwardEventWorker # rubocop:disable Scalability/IdempotentWorker
|
||||||
include ApplicationWorker
|
include ApplicationWorker
|
||||||
|
|
||||||
data_consistency :always
|
data_consistency :delayed
|
||||||
queue_namespace :jira_connect
|
queue_namespace :jira_connect
|
||||||
feature_category :integrations
|
feature_category :integrations
|
||||||
urgency :low
|
urgency :low
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ module JiraConnect
|
||||||
class RetryRequestWorker # rubocop:disable Scalability/IdempotentWorker
|
class RetryRequestWorker # rubocop:disable Scalability/IdempotentWorker
|
||||||
include ApplicationWorker
|
include ApplicationWorker
|
||||||
|
|
||||||
data_consistency :always
|
data_consistency :delayed
|
||||||
queue_namespace :jira_connect
|
queue_namespace :jira_connect
|
||||||
feature_category :integrations
|
feature_category :integrations
|
||||||
urgency :low
|
urgency :low
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,13 @@
|
||||||
"product_group": {
|
"product_group": {
|
||||||
"$ref": "../metrics/schema/product_groups.json"
|
"$ref": "../metrics/schema/product_groups.json"
|
||||||
},
|
},
|
||||||
|
"product_categories": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "known_product_category"
|
||||||
|
}
|
||||||
|
},
|
||||||
"introduced_by_url": {
|
"introduced_by_url": {
|
||||||
"type": [
|
"type": [
|
||||||
"string",
|
"string",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
JSONSchemer.configure do |config|
|
||||||
|
categories_filepath = Rails.root.join('config/feature_categories.yml')
|
||||||
|
feature_categories = YAML.load_file(categories_filepath)
|
||||||
|
|
||||||
|
config.formats['known_product_category'] = proc do |category, _format|
|
||||||
|
feature_categories.include?(category)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_applications_cert_managers
|
key_path: usage_activity_by_stage_monthly.configure.clusters_applications_cert_managers
|
||||||
description: Count user ids from GitLab Managed clusters with Cert Manager enabled
|
description: Count user ids from GitLab Managed clusters with Cert Manager enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_applications_helm
|
key_path: usage_activity_by_stage_monthly.configure.clusters_applications_helm
|
||||||
description: Count user ids from GitLab Managed clusters with Helm enabled
|
description: Count user ids from GitLab Managed clusters with Helm enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_applications_ingress
|
key_path: usage_activity_by_stage_monthly.configure.clusters_applications_ingress
|
||||||
description: Count user ids from GitLab Managed clusters with Ingress enabled
|
description: Count user ids from GitLab Managed clusters with Ingress enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_applications_knative
|
key_path: usage_activity_by_stage_monthly.configure.clusters_applications_knative
|
||||||
description: Count user ids from GitLab Managed clusters with Knative enabled
|
description: Count user ids from GitLab Managed clusters with Knative enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,8 @@ key_path: usage_activity_by_stage_monthly.configure.clusters_management_project
|
||||||
description: Number of Kubernetes clusters with clusters management project being
|
description: Number of Kubernetes clusters with clusters management project being
|
||||||
set
|
set
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_disabled
|
key_path: usage_activity_by_stage_monthly.configure.clusters_disabled
|
||||||
description: Number of user ids from GitLab Managed disabled clusters
|
description: Number of user ids from GitLab Managed disabled clusters
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_enabled
|
key_path: usage_activity_by_stage_monthly.configure.clusters_enabled
|
||||||
description: Number of distict user ids from GitLab Managed clusters currently enabled
|
description: Number of distict user ids from GitLab Managed clusters currently enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_platforms_gke
|
key_path: usage_activity_by_stage_monthly.configure.clusters_platforms_gke
|
||||||
description: Number of user ids from GitLab Managed clusters provisioned with GitLab on GCE GKE
|
description: Number of user ids from GitLab Managed clusters provisioned with GitLab on GCE GKE
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_platforms_eks
|
key_path: usage_activity_by_stage_monthly.configure.clusters_platforms_eks
|
||||||
description: Number of user ids from GitLab Managed clusters provisioned with GitLab on AWS EKS
|
description: Number of user ids from GitLab Managed clusters provisioned with GitLab on AWS EKS
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.clusters_platforms_user
|
key_path: usage_activity_by_stage_monthly.configure.clusters_platforms_user
|
||||||
description: Number of user ids from GitLab Managed clusters that are user provisioned
|
description: Number of user ids from GitLab Managed clusters that are user provisioned
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.instance_clusters_disabled
|
key_path: usage_activity_by_stage_monthly.configure.instance_clusters_disabled
|
||||||
description: Number of users from GitLab Managed disabled clusters attached to the instance
|
description: Number of users from GitLab Managed disabled clusters attached to the instance
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.instance_clusters_enabled
|
key_path: usage_activity_by_stage_monthly.configure.instance_clusters_enabled
|
||||||
description: Number of user ids from GitLab Managed enabled clusters attached to the instance
|
description: Number of user ids from GitLab Managed enabled clusters attached to the instance
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.group_clusters_disabled
|
key_path: usage_activity_by_stage_monthly.configure.group_clusters_disabled
|
||||||
description: Number of user ids GitLab Managed disabled clusters attached to groups
|
description: Number of user ids GitLab Managed disabled clusters attached to groups
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.group_clusters_enabled
|
key_path: usage_activity_by_stage_monthly.configure.group_clusters_enabled
|
||||||
description: Count disctinct user ids from GitLab Managed enabled clusters attached to groups
|
description: Count disctinct user ids from GitLab Managed enabled clusters attached to groups
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage_monthly.configure.project_clusters_disabled
|
key_path: usage_activity_by_stage_monthly.configure.project_clusters_disabled
|
||||||
description: Number of user ids from GitLab Managed disabled clusters attached to projects
|
description: Number of user ids from GitLab Managed disabled clusters attached to projects
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: operational
|
||||||
key_path: usage_activity_by_stage_monthly.configure.project_clusters_enabled
|
key_path: usage_activity_by_stage_monthly.configure.project_clusters_enabled
|
||||||
description: Number of user ids from GitLab Managed enabled clusters attached to projects
|
description: Number of user ids from GitLab Managed enabled clusters attached to projects
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: 28d
|
time_frame: 28d
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
key_path: redis_hll_counters.kubernetes_agent.agent_users_using_ci_tunnel_monthly
|
key_path: redis_hll_counters.kubernetes_agent.agent_users_using_ci_tunnel_monthly
|
||||||
description: MAU of the Agent for Kubernetes CI/CD Tunnel
|
description: MAU of the Agent for Kubernetes CI/CD Tunnel
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
milestone: "15.3"
|
milestone: "15.3"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters
|
key_path: counts.clusters
|
||||||
description: Total GitLab Managed clusters both enabled and disabled
|
description: Total GitLab Managed clusters both enabled and disabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_enabled
|
key_path: counts.clusters_enabled
|
||||||
description: Number of Kubernetes clusters attached to GitLab currently enabled
|
description: Number of Kubernetes clusters attached to GitLab currently enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.project_clusters_enabled
|
key_path: counts.project_clusters_enabled
|
||||||
description: Total GitLab Managed clusters attached to projects
|
description: Total GitLab Managed clusters attached to projects
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.group_clusters_enabled
|
key_path: counts.group_clusters_enabled
|
||||||
description: Total GitLab Managed clusters attached to groups
|
description: Total GitLab Managed clusters attached to groups
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.instance_clusters_enabled
|
key_path: counts.instance_clusters_enabled
|
||||||
description: Total GitLab Managed clusters attached to the instance
|
description: Total GitLab Managed clusters attached to the instance
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_disabled
|
key_path: counts.clusters_disabled
|
||||||
description: Number of Kubernetes clusters attached to GitLab currently disabled
|
description: Number of Kubernetes clusters attached to GitLab currently disabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.project_clusters_disabled
|
key_path: counts.project_clusters_disabled
|
||||||
description: Total GitLab Managed disabled clusters previously attached to projects
|
description: Total GitLab Managed disabled clusters previously attached to projects
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.group_clusters_disabled
|
key_path: counts.group_clusters_disabled
|
||||||
description: Total GitLab Managed disabled clusters previously attached to groups
|
description: Total GitLab Managed disabled clusters previously attached to groups
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.instance_clusters_disabled
|
key_path: counts.instance_clusters_disabled
|
||||||
description: Total GitLab Managed disabled clusters previously attached to the instance
|
description: Total GitLab Managed disabled clusters previously attached to the instance
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_platforms_eks
|
key_path: counts.clusters_platforms_eks
|
||||||
description: Total GitLab Managed clusters provisioned with GitLab on AWS EKS
|
description: Total GitLab Managed clusters provisioned with GitLab on AWS EKS
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_platforms_gke
|
key_path: counts.clusters_platforms_gke
|
||||||
description: Total GitLab Managed clusters provisioned with GitLab on GCE GKE
|
description: Total GitLab Managed clusters provisioned with GitLab on GCE GKE
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_platforms_user
|
key_path: counts.clusters_platforms_user
|
||||||
description: Total GitLab Managed clusters that are user provisioned
|
description: Total GitLab Managed clusters that are user provisioned
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_helm
|
key_path: counts.clusters_applications_helm
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Helm enabled
|
description: Total GitLab Managed clusters with GitLab Managed App:Helm enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_ingress
|
key_path: counts.clusters_applications_ingress
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Ingress installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Ingress installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_cert_managers
|
key_path: counts.clusters_applications_cert_managers
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Cert Manager installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Cert Manager installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_crossplane
|
key_path: counts.clusters_applications_crossplane
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Crossplane installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Crossplane installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_prometheus
|
key_path: counts.clusters_applications_prometheus
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Prometheus installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Prometheus installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_runner
|
key_path: counts.clusters_applications_runner
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Runner installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Runner installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_knative
|
key_path: counts.clusters_applications_knative
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Knative installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Knative installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_elastic_stack
|
key_path: counts.clusters_applications_elastic_stack
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Elastic Stack installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Elastic Stack installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_applications_jupyter
|
key_path: counts.clusters_applications_jupyter
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Jupyter installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Jupyter installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: operational
|
||||||
key_path: counts.clusters_applications_cilium
|
key_path: counts.clusters_applications_cilium
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Cilium installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Cilium installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_management_project
|
key_path: counts.clusters_management_project
|
||||||
description: Total GitLab Managed clusters with defined cluster management project
|
description: Total GitLab Managed clusters with defined cluster management project
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.kubernetes_agents
|
key_path: counts.kubernetes_agents
|
||||||
description: Count of Kubernetes registered agents
|
description: Count of Kubernetes registered agents
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.kubernetes_agents_with_token
|
key_path: counts.kubernetes_agents_with_token
|
||||||
description: Count of Kubernetes agents with at least one token
|
description: Count of Kubernetes agents with at least one token
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_applications_cert_managers
|
key_path: usage_activity_by_stage.configure.clusters_applications_cert_managers
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Cert Manager installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Cert Manager installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_applications_helm
|
key_path: usage_activity_by_stage.configure.clusters_applications_helm
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Helm enabled
|
description: Total GitLab Managed clusters with GitLab Managed App:Helm enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_applications_ingress
|
key_path: usage_activity_by_stage.configure.clusters_applications_ingress
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Ingress installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Ingress installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_applications_knative
|
key_path: usage_activity_by_stage.configure.clusters_applications_knative
|
||||||
description: Total GitLab Managed clusters with GitLab Managed App:Knative installed
|
description: Total GitLab Managed clusters with GitLab Managed App:Knative installed
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_management_project
|
key_path: usage_activity_by_stage.configure.clusters_management_project
|
||||||
description: Total GitLab Managed clusters with defined cluster management project
|
description: Total GitLab Managed clusters with defined cluster management project
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_disabled
|
key_path: usage_activity_by_stage.configure.clusters_disabled
|
||||||
description: Total GitLab Managed disabled clusters
|
description: Total GitLab Managed disabled clusters
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_enabled
|
key_path: usage_activity_by_stage.configure.clusters_enabled
|
||||||
description: Total GitLab Managed clusters currently enabled
|
description: Total GitLab Managed clusters currently enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_platforms_gke
|
key_path: usage_activity_by_stage.configure.clusters_platforms_gke
|
||||||
description: Total GitLab Managed clusters provisioned with GitLab on GCE GKE
|
description: Total GitLab Managed clusters provisioned with GitLab on GCE GKE
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_platforms_eks
|
key_path: usage_activity_by_stage.configure.clusters_platforms_eks
|
||||||
description: Total GitLab Managed clusters provisioned with GitLab on AWS EKS
|
description: Total GitLab Managed clusters provisioned with GitLab on AWS EKS
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.clusters_platforms_user
|
key_path: usage_activity_by_stage.configure.clusters_platforms_user
|
||||||
description: Total GitLab Managed clusters that are user provisioned
|
description: Total GitLab Managed clusters that are user provisioned
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.instance_clusters_disabled
|
key_path: usage_activity_by_stage.configure.instance_clusters_disabled
|
||||||
description: Total GitLab Managed disabled clusters attached to the instance
|
description: Total GitLab Managed disabled clusters attached to the instance
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.instance_clusters_enabled
|
key_path: usage_activity_by_stage.configure.instance_clusters_enabled
|
||||||
description: Total GitLab Managed enabled clusters attached to the instance
|
description: Total GitLab Managed enabled clusters attached to the instance
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.group_clusters_disabled
|
key_path: usage_activity_by_stage.configure.group_clusters_disabled
|
||||||
description: Total GitLab Managed disabled clusters attached to groups
|
description: Total GitLab Managed disabled clusters attached to groups
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.group_clusters_enabled
|
key_path: usage_activity_by_stage.configure.group_clusters_enabled
|
||||||
description: Total GitLab Managed enabled clusters attached to groups
|
description: Total GitLab Managed enabled clusters attached to groups
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.project_clusters_disabled
|
key_path: usage_activity_by_stage.configure.project_clusters_disabled
|
||||||
description: Total GitLab Managed disabled clusters attached to projects
|
description: Total GitLab Managed disabled clusters attached to projects
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.project_clusters_enabled
|
key_path: usage_activity_by_stage.configure.project_clusters_enabled
|
||||||
description: Total GitLab Managed enabled clusters attached to projects
|
description: Total GitLab Managed enabled clusters attached to projects
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.configure.projects_with_prometheus_alerts
|
key_path: usage_activity_by_stage.configure.projects_with_prometheus_alerts
|
||||||
description: Projects with Prometheus alerting enabled
|
description: Projects with Prometheus alerting enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
milestone_removed: '14.0'
|
milestone_removed: '14.0'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: usage_activity_by_stage.verify.clusters_applications_runner
|
key_path: usage_activity_by_stage.verify.clusters_applications_runner
|
||||||
description: Count of users creating managed clusters with Runner enabled
|
description: Count of users creating managed clusters with Runner enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.kubernetes_agent_k8s_api_proxy_request
|
key_path: counts.kubernetes_agent_k8s_api_proxy_request
|
||||||
description: Count of Kubernetes API proxy requests
|
description: Count of Kubernetes API proxy requests
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
milestone: '13.12'
|
milestone: '13.12'
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_integrations_prometheus
|
key_path: counts.clusters_integrations_prometheus
|
||||||
description: Total clusters with Clusters::Integrations::Prometheus enabled
|
description: Total clusters with Clusters::Integrations::Prometheus enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: active
|
status: active
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ data_category: optional
|
||||||
key_path: counts.clusters_integrations_elastic_stack
|
key_path: counts.clusters_integrations_elastic_stack
|
||||||
description: Total clusters with Clusters::Integrations::ElasticStack enabled
|
description: Total clusters with Clusters::Integrations::ElasticStack enabled
|
||||||
product_group: environments
|
product_group: environments
|
||||||
product_category: deployment_management
|
product_categories:
|
||||||
|
- deployment_management
|
||||||
value_type: number
|
value_type: number
|
||||||
status: removed
|
status: removed
|
||||||
time_frame: all
|
time_frame: all
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,13 @@
|
||||||
"product_group": {
|
"product_group": {
|
||||||
"$ref": "product_groups.json"
|
"$ref": "product_groups.json"
|
||||||
},
|
},
|
||||||
|
"product_categories": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string",
|
||||||
|
"format": "known_product_category"
|
||||||
|
}
|
||||||
|
},
|
||||||
"value_type": {
|
"value_type": {
|
||||||
"type": "string",
|
"type": "string",
|
||||||
"enum": [
|
"enum": [
|
||||||
|
|
@ -161,9 +168,6 @@
|
||||||
"value_json_schema": {
|
"value_json_schema": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"product_category": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"name": {
|
"name": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ key_path: database.mode
|
||||||
description: What PostgreSQL database mode is used. Possible values are
|
description: What PostgreSQL database mode is used. Possible values are
|
||||||
"single-database", "single-database-ci-connection", or "multiple-databases"
|
"single-database", "single-database-ci-connection", or "multiple-databases"
|
||||||
product_group: database
|
product_group: database
|
||||||
product_category: database
|
product_categories:
|
||||||
|
- database
|
||||||
value_type: string
|
value_type: string
|
||||||
status: active
|
status: active
|
||||||
milestone: "15.11"
|
milestone: "15.11"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class EnsureIdUniquenessForPCiPipelines < Gitlab::Database::Migration[2.2]
|
||||||
|
include Gitlab::Database::PartitioningMigrationHelpers::UniquenessHelpers
|
||||||
|
|
||||||
|
milestone '17.6'
|
||||||
|
|
||||||
|
TABLE_NAME = :p_ci_pipelines
|
||||||
|
SEQ_NAME = :ci_pipelines_id_seq
|
||||||
|
|
||||||
|
def up
|
||||||
|
ensure_unique_id(TABLE_NAME, seq: SEQ_NAME)
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
revert_ensure_unique_id(TABLE_NAME, seq: SEQ_NAME)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
a4a3e3193389ae202c53d321d613fabde0c849da2c75d7676e661190e9a246de
|
||||||
|
|
@ -88,6 +88,19 @@ RETURN NEW;
|
||||||
END
|
END
|
||||||
$$;
|
$$;
|
||||||
|
|
||||||
|
CREATE FUNCTION assign_p_ci_pipelines_id_value() RETURNS trigger
|
||||||
|
LANGUAGE plpgsql
|
||||||
|
AS $$
|
||||||
|
BEGIN
|
||||||
|
IF NEW."id" IS NOT NULL THEN
|
||||||
|
RAISE WARNING 'Manually assigning ids is not allowed, the value will be ignored';
|
||||||
|
END IF;
|
||||||
|
NEW."id" := nextval('ci_pipelines_id_seq'::regclass);
|
||||||
|
RETURN NEW;
|
||||||
|
|
||||||
|
END
|
||||||
|
$$;
|
||||||
|
|
||||||
CREATE FUNCTION assign_p_ci_stages_id_value() RETURNS trigger
|
CREATE FUNCTION assign_p_ci_stages_id_value() RETURNS trigger
|
||||||
LANGUAGE plpgsql
|
LANGUAGE plpgsql
|
||||||
AS $$
|
AS $$
|
||||||
|
|
@ -9243,15 +9256,6 @@ CREATE TABLE p_ci_pipelines (
|
||||||
)
|
)
|
||||||
PARTITION BY LIST (partition_id);
|
PARTITION BY LIST (partition_id);
|
||||||
|
|
||||||
CREATE SEQUENCE ci_pipelines_id_seq
|
|
||||||
START WITH 1
|
|
||||||
INCREMENT BY 1
|
|
||||||
NO MINVALUE
|
|
||||||
NO MAXVALUE
|
|
||||||
CACHE 1;
|
|
||||||
|
|
||||||
ALTER SEQUENCE ci_pipelines_id_seq OWNED BY p_ci_pipelines.id;
|
|
||||||
|
|
||||||
CREATE TABLE ci_pipelines (
|
CREATE TABLE ci_pipelines (
|
||||||
ref character varying,
|
ref character varying,
|
||||||
sha character varying,
|
sha character varying,
|
||||||
|
|
@ -9281,13 +9285,22 @@ CREATE TABLE ci_pipelines (
|
||||||
ci_ref_id bigint,
|
ci_ref_id bigint,
|
||||||
locked smallint DEFAULT 1 NOT NULL,
|
locked smallint DEFAULT 1 NOT NULL,
|
||||||
partition_id bigint NOT NULL,
|
partition_id bigint NOT NULL,
|
||||||
id bigint DEFAULT nextval('ci_pipelines_id_seq'::regclass) NOT NULL,
|
id bigint NOT NULL,
|
||||||
auto_canceled_by_id bigint,
|
auto_canceled_by_id bigint,
|
||||||
auto_canceled_by_partition_id bigint,
|
auto_canceled_by_partition_id bigint,
|
||||||
CONSTRAINT check_2ba2a044b9 CHECK ((project_id IS NOT NULL)),
|
CONSTRAINT check_2ba2a044b9 CHECK ((project_id IS NOT NULL)),
|
||||||
CONSTRAINT check_d7e99a025e CHECK ((lock_version IS NOT NULL))
|
CONSTRAINT check_d7e99a025e CHECK ((lock_version IS NOT NULL))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE SEQUENCE ci_pipelines_id_seq
|
||||||
|
START WITH 1
|
||||||
|
INCREMENT BY 1
|
||||||
|
NO MINVALUE
|
||||||
|
NO MAXVALUE
|
||||||
|
CACHE 1;
|
||||||
|
|
||||||
|
ALTER SEQUENCE ci_pipelines_id_seq OWNED BY p_ci_pipelines.id;
|
||||||
|
|
||||||
CREATE TABLE ci_project_mirrors (
|
CREATE TABLE ci_project_mirrors (
|
||||||
id bigint NOT NULL,
|
id bigint NOT NULL,
|
||||||
project_id bigint NOT NULL,
|
project_id bigint NOT NULL,
|
||||||
|
|
@ -23364,8 +23377,6 @@ ALTER TABLE ONLY p_catalog_resource_sync_events ALTER COLUMN id SET DEFAULT next
|
||||||
|
|
||||||
ALTER TABLE ONLY p_ci_builds_metadata ALTER COLUMN id SET DEFAULT nextval('ci_builds_metadata_id_seq'::regclass);
|
ALTER TABLE ONLY p_ci_builds_metadata ALTER COLUMN id SET DEFAULT nextval('ci_builds_metadata_id_seq'::regclass);
|
||||||
|
|
||||||
ALTER TABLE ONLY p_ci_pipelines ALTER COLUMN id SET DEFAULT nextval('ci_pipelines_id_seq'::regclass);
|
|
||||||
|
|
||||||
ALTER TABLE ONLY packages_build_infos ALTER COLUMN id SET DEFAULT nextval('packages_build_infos_id_seq'::regclass);
|
ALTER TABLE ONLY packages_build_infos ALTER COLUMN id SET DEFAULT nextval('packages_build_infos_id_seq'::regclass);
|
||||||
|
|
||||||
ALTER TABLE ONLY packages_conan_file_metadata ALTER COLUMN id SET DEFAULT nextval('packages_conan_file_metadata_id_seq'::regclass);
|
ALTER TABLE ONLY packages_conan_file_metadata ALTER COLUMN id SET DEFAULT nextval('packages_conan_file_metadata_id_seq'::regclass);
|
||||||
|
|
@ -34722,6 +34733,8 @@ CREATE TRIGGER assign_p_ci_job_artifacts_id_trigger BEFORE INSERT ON p_ci_job_ar
|
||||||
|
|
||||||
CREATE TRIGGER assign_p_ci_pipeline_variables_id_trigger BEFORE INSERT ON p_ci_pipeline_variables FOR EACH ROW EXECUTE FUNCTION assign_p_ci_pipeline_variables_id_value();
|
CREATE TRIGGER assign_p_ci_pipeline_variables_id_trigger BEFORE INSERT ON p_ci_pipeline_variables FOR EACH ROW EXECUTE FUNCTION assign_p_ci_pipeline_variables_id_value();
|
||||||
|
|
||||||
|
CREATE TRIGGER assign_p_ci_pipelines_id_trigger BEFORE INSERT ON p_ci_pipelines FOR EACH ROW EXECUTE FUNCTION assign_p_ci_pipelines_id_value();
|
||||||
|
|
||||||
CREATE TRIGGER assign_p_ci_stages_id_trigger BEFORE INSERT ON p_ci_stages FOR EACH ROW EXECUTE FUNCTION assign_p_ci_stages_id_value();
|
CREATE TRIGGER assign_p_ci_stages_id_trigger BEFORE INSERT ON p_ci_stages FOR EACH ROW EXECUTE FUNCTION assign_p_ci_stages_id_value();
|
||||||
|
|
||||||
CREATE TRIGGER assign_zoekt_tasks_id_trigger BEFORE INSERT ON zoekt_tasks FOR EACH ROW EXECUTE FUNCTION assign_zoekt_tasks_id_value();
|
CREATE TRIGGER assign_zoekt_tasks_id_trigger BEFORE INSERT ON zoekt_tasks FOR EACH ROW EXECUTE FUNCTION assign_zoekt_tasks_id_value();
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ across GitLab releases. Use the
|
||||||
Every API call to vulnerabilities must be [authenticated](rest/index.md#authentication).
|
Every API call to vulnerabilities must be [authenticated](rest/index.md#authentication).
|
||||||
|
|
||||||
If an authenticated user does not have permission to
|
If an authenticated user does not have permission to
|
||||||
[view vulnerabilities](../user/permissions.md#project-members-permissions),
|
[view vulnerability report](../user/permissions.md#application-security),
|
||||||
this request returns a `403 Forbidden` status code.
|
this request returns a `403 Forbidden` status code.
|
||||||
|
|
||||||
## Single vulnerability
|
## Single vulnerability
|
||||||
|
|
@ -80,7 +80,7 @@ Example response:
|
||||||
Confirms a given vulnerability. Returns status code `304` if the vulnerability is already confirmed.
|
Confirms a given vulnerability. Returns status code `304` if the vulnerability is already confirmed.
|
||||||
|
|
||||||
If an authenticated user does not have permission to
|
If an authenticated user does not have permission to
|
||||||
[confirm vulnerabilities](../user/permissions.md#project-members-permissions),
|
[change vulnerability status](../user/permissions.md#application-security),
|
||||||
this request results in a `403` status code.
|
this request results in a `403` status code.
|
||||||
|
|
||||||
```plaintext
|
```plaintext
|
||||||
|
|
@ -125,7 +125,7 @@ Example response:
|
||||||
Resolves a given vulnerability. Returns status code `304` if the vulnerability is already resolved.
|
Resolves a given vulnerability. Returns status code `304` if the vulnerability is already resolved.
|
||||||
|
|
||||||
If an authenticated user does not have permission to
|
If an authenticated user does not have permission to
|
||||||
[resolve vulnerabilities](../user/permissions.md#project-members-permissions),
|
[change vulnerability status](../user/permissions.md#application-security),
|
||||||
this request results in a `403` status code.
|
this request results in a `403` status code.
|
||||||
|
|
||||||
```plaintext
|
```plaintext
|
||||||
|
|
@ -170,7 +170,7 @@ Example response:
|
||||||
Dismisses a given vulnerability. Returns status code `304` if the vulnerability is already dismissed.
|
Dismisses a given vulnerability. Returns status code `304` if the vulnerability is already dismissed.
|
||||||
|
|
||||||
If an authenticated user does not have permission to
|
If an authenticated user does not have permission to
|
||||||
[dismiss vulnerabilities](../user/permissions.md#project-members-permissions),
|
[change vulnerability status](../user/permissions.md#application-security),
|
||||||
this request results in a `403` status code.
|
this request results in a `403` status code.
|
||||||
|
|
||||||
```plaintext
|
```plaintext
|
||||||
|
|
@ -215,7 +215,7 @@ Example response:
|
||||||
Reverts a given vulnerability to detected state. Returns status code `304` if the vulnerability is already in detected state.
|
Reverts a given vulnerability to detected state. Returns status code `304` if the vulnerability is already in detected state.
|
||||||
|
|
||||||
If an authenticated user does not have permission to
|
If an authenticated user does not have permission to
|
||||||
[revert vulnerability to detected state](../user/permissions.md#project-members-permissions),
|
[change vulnerability status](../user/permissions.md#application-security),
|
||||||
this request results in a `403` status code.
|
this request results in a `403` status code.
|
||||||
|
|
||||||
```plaintext
|
```plaintext
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,7 @@ Now you can update tests for existing files and write tests for the new files:
|
||||||
1. `spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js` or `ee/spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js`.
|
1. `spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js` or `ee/spec/frontend/work_items/components/work_item_attributes_wrapper_spec.js`.
|
||||||
1. `spec/frontend/work_items/components/work_item_<widget_name>_spec.js` or `ee/spec/frontend/work_items/components/work_item_<widget_name>_spec.js`.
|
1. `spec/frontend/work_items/components/work_item_<widget_name>_spec.js` or `ee/spec/frontend/work_items/components/work_item_<widget_name>_spec.js`.
|
||||||
1. `spec/frontend/work_items/graphql/resolvers_spec.js` or `ee/spec/frontend/work_items/graphql/resolvers_spec.js`.
|
1. `spec/frontend/work_items/graphql/resolvers_spec.js` or `ee/spec/frontend/work_items/graphql/resolvers_spec.js`.
|
||||||
1. `spec/features/projects/work_items/work_item_spec.rb` or `ee/spec/features/projects/work_items/work_item_spec.rb`.
|
1. `spec/features/work_items/work_item_spec.rb` or `ee/spec/features/work_items/work_item_spec.rb`.
|
||||||
|
|
||||||
NOTE:
|
NOTE:
|
||||||
You may find some feature specs failing because of excessive SQL queries.
|
You may find some feature specs failing because of excessive SQL queries.
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ The [`gitmailmap`](https://git-scm.com/docs/gitmailmap) feature allows users to
|
||||||
GitLab uses these email addresses to provide links to the commit author.
|
GitLab uses these email addresses to provide links to the commit author.
|
||||||
When using a `mailmap` author mapping, it's possible to have a verified commit with an unverified author email.
|
When using a `mailmap` author mapping, it's possible to have a verified commit with an unverified author email.
|
||||||
|
|
||||||
For SSH signatures with `mailmap` author mappings, GitLab displays an orange verified label with a warning sign.
|
For SSH and UI signatures with `mailmap` author mappings, GitLab displays an orange verified label with a warning sign.
|
||||||
To restore the green verified label, verify the mapped email address, or remove the `mailmap` entry.
|
To restore the green verified label, verify the mapped email address, or remove the `mailmap` entry.
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,10 @@ module Gitlab
|
||||||
module Tracking
|
module Tracking
|
||||||
class EventDefinitionValidator
|
class EventDefinitionValidator
|
||||||
EVENT_SCHEMA_PATH = Rails.root.join('config/events/schema.json')
|
EVENT_SCHEMA_PATH = Rails.root.join('config/events/schema.json')
|
||||||
SCHEMA = ::JSONSchemer.schema(EVENT_SCHEMA_PATH)
|
|
||||||
|
def self.definition_schema
|
||||||
|
@definition_schema ||= ::JSONSchemer.schema(EVENT_SCHEMA_PATH)
|
||||||
|
end
|
||||||
|
|
||||||
def initialize(definition)
|
def initialize(definition)
|
||||||
@attributes = definition.attributes
|
@attributes = definition.attributes
|
||||||
|
|
@ -12,7 +15,7 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def validation_errors
|
def validation_errors
|
||||||
SCHEMA.validate(attributes.deep_stringify_keys).map do |error|
|
self.class.definition_schema.validate(attributes.deep_stringify_keys).map do |error|
|
||||||
<<~ERROR_MSG
|
<<~ERROR_MSG
|
||||||
--------------- VALIDATION ERROR ---------------
|
--------------- VALIDATION ERROR ---------------
|
||||||
Definition file: #{path}
|
Definition file: #{path}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,6 @@ module Gitlab
|
||||||
module Usage
|
module Usage
|
||||||
class MetricDefinition
|
class MetricDefinition
|
||||||
METRIC_SCHEMA_PATH = Rails.root.join('config', 'metrics', 'schema', 'base.json')
|
METRIC_SCHEMA_PATH = Rails.root.join('config', 'metrics', 'schema', 'base.json')
|
||||||
SCHEMA = ::JSONSchemer.schema(METRIC_SCHEMA_PATH)
|
|
||||||
AVAILABLE_STATUSES = %w[active broken].to_set.freeze
|
AVAILABLE_STATUSES = %w[active broken].to_set.freeze
|
||||||
VALID_SERVICE_PING_STATUSES = %w[active broken].to_set.freeze
|
VALID_SERVICE_PING_STATUSES = %w[active broken].to_set.freeze
|
||||||
|
|
||||||
|
|
@ -91,14 +90,14 @@ module Gitlab
|
||||||
end
|
end
|
||||||
|
|
||||||
def validation_errors
|
def validation_errors
|
||||||
SCHEMA.validate(@attributes.deep_stringify_keys).map do |error|
|
self.class.definition_schema.validate(@attributes.deep_stringify_keys).map do |error|
|
||||||
<<~ERROR_MSG
|
<<~ERROR_MSG
|
||||||
--------------- VALIDATION ERROR ---------------
|
--------------- VALIDATION ERROR ---------------
|
||||||
Metric file: #{path}
|
Metric file: #{path}
|
||||||
Error type: #{error['type']}
|
Error type: #{error['type']}
|
||||||
Data: #{error['data']}
|
Data: #{error['data']}
|
||||||
Path: #{error['data_pointer']}
|
Path: #{error['data_pointer']}
|
||||||
Details: #{error['details']}
|
Details: #{error['details'] || error['error']}
|
||||||
ERROR_MSG
|
ERROR_MSG
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -188,6 +187,10 @@ module Gitlab
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def definition_schema
|
||||||
|
@definition_schema ||= ::JSONSchemer.schema(METRIC_SCHEMA_PATH)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def load_all!
|
def load_all!
|
||||||
|
|
|
||||||
|
|
@ -49776,6 +49776,9 @@ msgstr ""
|
||||||
msgid "SecurityOrchestration|Edit merge request approval policy"
|
msgid "SecurityOrchestration|Edit merge request approval policy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "SecurityOrchestration|Edit pipeline execution policy"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
msgid "SecurityOrchestration|Edit policy"
|
msgid "SecurityOrchestration|Edit policy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ module InternalEventsCli
|
||||||
:time_frame,
|
:time_frame,
|
||||||
:data_source,
|
:data_source,
|
||||||
:data_category,
|
:data_category,
|
||||||
:product_category,
|
:product_categories,
|
||||||
:distribution,
|
:distribution,
|
||||||
:tier,
|
:tier,
|
||||||
:tiers,
|
:tiers,
|
||||||
|
|
|
||||||
|
|
@ -42,4 +42,10 @@ RSpec.describe StreamDiffs, type: :controller, feature_category: :source_code_ma
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#request' do
|
||||||
|
it 'forces format as HTML' do
|
||||||
|
expect(controller.new.request.format.to_s).to eq('text/html')
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue