Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-06-03 12:20:43 +00:00
parent 9a3d8dc5ac
commit 8a9328f441
698 changed files with 1093 additions and 1547 deletions

View File

@ -57,64 +57,70 @@
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /devops::fulfillment/'
.if-automated-merge-request: &if-automated-merge-request
if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "release-tools/update-gitaly" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /stable-(ee|jh)$/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && ($CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "release-tools/update-gitaly" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /stable-(ee|jh)$/)'
.if-merge-request-targeting-stable-branch: &if-merge-request-targeting-stable-branch
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee|-jh)?$/'
.if-merge-request-labels-as-if-foss: &if-merge-request-labels-as-if-foss
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss/'
.if-merge-request-labels-as-if-jh: &if-merge-request-labels-as-if-jh
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-jh/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-jh/'
.if-merge-request-labels-force-as-if-jh: &if-merge-request-labels-force-as-if-jh
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:force-run-as-if-jh/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:force-run-as-if-jh/'
.if-merge-request-labels-update-caches: &if-merge-request-labels-update-caches
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:update-cache/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:update-cache/'
.if-merge-request-labels-run-all-rspec: &if-merge-request-labels-run-all-rspec
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-rspec/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-rspec/'
.if-merge-request-labels-run-all-jest: &if-merge-request-labels-run-all-jest
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-jest/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-jest/'
.if-merge-request-labels-run-all-e2e: &if-merge-request-labels-run-all-e2e
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-e2e/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-e2e/'
.if-merge-request-labels-run-single-db: &if-merge-request-labels-run-single-db
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-single-db/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-single-db/'
.if-merge-request-labels-run-clusterwide-db: &if-merge-request-labels-run-clusterwide-db
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-clusterwide-db/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-clusterwide-db/'
.if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/'
.if-merge-request-labels-run-cs-evaluation: &if-merge-request-labels-run-cs-evaluation
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-CS-evaluation/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-CS-evaluation/'
.if-merge-request-labels-skip-undercoverage: &if-merge-request-labels-skip-undercoverage
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:skip-undercoverage/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:skip-undercoverage/'
.if-merge-request-labels-jh-contribution: &if-merge-request-labels-jh-contribution
if: '$CI_MERGE_REQUEST_LABELS =~ /JiHu contribution/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /JiHu contribution/'
.if-merge-request-labels-group-global-search: &if-merge-request-labels-group-global-search
if: '$CI_MERGE_REQUEST_LABELS =~ /group::global search/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /group::global search/'
.if-merge-request-labels-pipeline-expedite: &if-merge-request-labels-pipeline-expedite
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:expedite/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:expedite/'
.if-merge-request-labels-frontend-and-feature-flag: &if-merge-request-labels-frontend-and-feature-flag
if: '$CI_MERGE_REQUEST_LABELS =~ /frontend/ && $CI_MERGE_REQUEST_LABELS =~ /feature flag/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /frontend/ && $CI_MERGE_REQUEST_LABELS =~ /feature flag/'
.if-merge-request-labels-run-praefect-with-db: &if-merge-request-labels-run-praefect-with-db
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-praefect-with-db/'
.if-merge-request-labels-run-run-without-gitaly-transactions: &if-merge-request-labels-run-run-without-gitaly-transactions
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /run-without-gitaly-transactions/'
.if-security-merge-request: &if-security-merge-request
if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && ($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached")'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_PROJECT_NAMESPACE == "gitlab-org/security"'
.if-fork-merge-request: &if-fork-merge-request
if: '$CI_PROJECT_NAMESPACE !~ /^gitlab(-org)?($|\/)/ && ($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS !~ /pipeline:run-all-rspec/'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_PROJECT_NAMESPACE !~ /^gitlab(-org)?($|\/)/ && $CI_MERGE_REQUEST_LABELS !~ /pipeline:run-all-rspec/'
.if-schedule-pipeline: &if-schedule-pipeline
if: '$CI_PIPELINE_SOURCE == "schedule"'
@ -150,16 +156,16 @@
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
.if-dot-com-gitlab-org-merge-request: &if-dot-com-gitlab-org-merge-request
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && ($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached")'
if: '($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org"'
.if-dot-com-gitlab-org-and-subgroups-merge-train: &if-dot-com-gitlab-org-and-subgroups-merge-train
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org/ && $CI_MERGE_REQUEST_EVENT_TYPE == "merge_train"'
if: '$CI_MERGE_REQUEST_EVENT_TYPE == "merge_train" && $CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org/'
.if-dot-com-gitlab-org-ee-tag: &if-dot-com-gitlab-org-ee-tag
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_COMMIT_TAG =~ /^v?[\d]+\.[\d]+\.[\d]+[\d\w-]*-ee$/'
.if-ruby-branch: &if-ruby-branch
if: '$CI_COMMIT_BRANCH =~ /^ruby\d+(_\d)*$/ || $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby\d+(_\d)*/'
if: '$CI_COMMIT_BRANCH =~ /^ruby\d+(_\d)*$/ || (($CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "detached") && $CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby\d+(_\d)*/)'
####################
# Changes patterns #
@ -1998,13 +2004,13 @@
rules:
- if: '$ENABLE_RSPEC_PRAEFECT == "true"'
allow_failure: true
- if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-praefect-with-db/'
- <<: *if-merge-request-labels-run-praefect-with-db
allow_failure: true
.rails:rules:gitaly-without-transactions:
rules:
- <<: *if-schedule-maintenance
- if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-without-gitaly-transactions/'
- <<: *if-merge-request-labels-run-run-without-gitaly-transactions
.rails:rules:ee-and-foss-migration:
rules:

View File

@ -1 +1 @@
1fb4c252c713f33db2102315870c1936769319ac
7664f8d2e7a364a9d8807790aec06e27903dd4e9

View File

@ -1 +1 @@
v17.1.0-rc7
v17.1.0-rc9

View File

@ -0,0 +1,118 @@
<script>
import { GlTooltipDirective } from '@gitlab/ui';
import { sprintf, s__ } from '~/locale';
import CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';
import { accessValue } from '../accessors/linked_pipelines_accessors';
/**
* Renders the upstream/downstream portions of the pipeline mini graph.
*/
export default {
directives: {
GlTooltip: GlTooltipDirective,
},
components: {
CiIcon,
},
inject: {
dataMethod: {
default: 'rest',
},
},
props: {
triggeredBy: {
type: Array,
required: false,
default: () => [],
},
triggered: {
type: Array,
required: false,
default: () => [],
},
pipelinePath: {
type: String,
required: false,
default: '',
},
},
data() {
return {
maxRenderedPipelines: 3,
};
},
computed: {
// Exactly one of these (triggeredBy and triggered) must be truthy. Never both. Never neither.
isUpstream() {
return Boolean(this.triggeredBy.length) && !this.triggered.length;
},
isDownstream() {
return !this.triggeredBy.length && Boolean(this.triggered.length);
},
linkedPipelines() {
return this.isUpstream ? this.triggeredBy : this.triggered;
},
totalPipelineCount() {
return this.linkedPipelines.length;
},
linkedPipelinesTrimmed() {
return this.totalPipelineCount > this.maxRenderedPipelines
? this.linkedPipelines.slice(0, this.maxRenderedPipelines)
: this.linkedPipelines;
},
shouldRenderCounter() {
return this.isDownstream && this.linkedPipelines.length > this.maxRenderedPipelines;
},
counterLabel() {
return `+${this.linkedPipelines.length - this.maxRenderedPipelines}`;
},
counterTooltipText() {
return sprintf(s__('LinkedPipelines|%{counterLabel} more downstream pipelines'), {
counterLabel: this.counterLabel,
});
},
},
methods: {
pipelineTooltipText(pipeline) {
const { label } = accessValue(pipeline, this.dataMethod, 'detailedStatus');
return `${pipeline.project.name} - ${label}`;
},
pipelineStatus(pipeline) {
// detailedStatus is graphQL, details.status is REST
return pipeline?.detailedStatus || pipeline?.details?.status;
},
},
};
</script>
<template>
<span
v-if="linkedPipelines"
:class="{
'is-upstream': isUpstream,
'is-downstream': isDownstream,
}"
class="linked-pipeline-mini-list gl-display-inline-flex gl-gap-2 gl-align-middle"
>
<ci-icon
v-for="pipeline in linkedPipelinesTrimmed"
:key="pipeline.id"
v-gl-tooltip="{ title: pipelineTooltipText(pipeline) }"
:status="pipelineStatus(pipeline)"
:show-tooltip="false"
class="linked-pipeline-mini-item gl-mb-0!"
data-testid="linked-pipeline-mini-item"
/>
<a
v-if="shouldRenderCounter"
v-gl-tooltip="{ title: counterTooltipText }"
:title="counterTooltipText"
:href="pipelinePath"
class="gl-align-items-center gl-bg-gray-50 gl-display-inline-flex gl-font-sm gl-h-6 gl-justify-content-center gl-rounded-pill gl-text-decoration-none gl-text-gray-500 gl-w-7 linked-pipelines-counter linked-pipeline-mini-item"
data-testid="linked-pipeline-counter"
>
{{ counterLabel }}
</a>
</span>
</template>

View File

@ -1,15 +1,15 @@
<script>
import { GlIcon } from '@gitlab/ui';
import PipelineStages from '../pipeline_stages.vue';
import LinkedPipelinesMiniList from '../linked_pipelines_mini_list.vue';
import LegacyLinkedPipelinesMiniList from './legacy_linked_pipelines_mini_list.vue';
import LegacyPipelineStages from './legacy_pipeline_stages.vue';
/**
* Renders the REST version of the pipeline mini graph.
* Renders the REST instance of the pipeline mini graph.
*/
export default {
components: {
GlIcon,
LinkedPipelinesMiniList,
PipelineStages,
LegacyLinkedPipelinesMiniList,
LegacyPipelineStages,
},
arrowStyles: ['arrow-icon gl-display-inline-block gl-mx-1 gl-text-gray-500 !gl-align-middle'],
props: {
@ -18,11 +18,6 @@ export default {
required: false,
default: () => [],
},
isGraphql: {
type: Boolean,
required: false,
default: false,
},
isMergeTrain: {
type: Boolean,
required: false,
@ -58,7 +53,7 @@ export default {
</script>
<template>
<div data-testid="pipeline-mini-graph">
<linked-pipelines-mini-list
<legacy-linked-pipelines-mini-list
v-if="upstreamPipeline"
:triggered-by="/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ [
upstreamPipeline,
@ -71,8 +66,7 @@ export default {
name="long-arrow"
data-testid="upstream-arrow-icon"
/>
<pipeline-stages
:is-graphql="isGraphql"
<legacy-pipeline-stages
:is-merge-train="isMergeTrain"
:stages="stages"
:update-dropdown="updateDropdown"
@ -84,7 +78,7 @@ export default {
name="long-arrow"
data-testid="downstream-arrow-icon"
/>
<linked-pipelines-mini-list
<legacy-linked-pipelines-mini-list
v-if="hasDownstreamPipelines"
:triggered="downstreamPipelines"
:pipeline-path="pipelinePath"

View File

@ -0,0 +1,43 @@
<script>
import LegacyPipelineStage from './legacy_pipeline_stage.vue';
/**
* Renders the pipeline stages portion of the legacy pipeline mini graph.
*/
export default {
components: {
LegacyPipelineStage,
},
props: {
stages: {
type: Array,
required: true,
},
updateDropdown: {
type: Boolean,
required: false,
default: false,
},
isMergeTrain: {
type: Boolean,
required: false,
default: false,
},
},
};
</script>
<template>
<div class="gl-display-inline gl-align-middle">
<div
v-for="stage in stages"
:key="stage.name"
class="pipeline-mini-graph-stage-container dropdown gl-display-inline-flex gl-mr-2 gl-my-2 gl-align-middle"
>
<legacy-pipeline-stage
:stage="stage"
:update-dropdown="updateDropdown"
:is-merge-train="isMergeTrain"
@miniGraphStageClick="$emit('miniGraphStageClick')"
/>
</div>
</div>
</template>

View File

@ -1,5 +1,5 @@
<script>
import { GlLoadingIcon } from '@gitlab/ui';
import { GlIcon, GlLoadingIcon } from '@gitlab/ui';
import { createAlert } from '~/alert';
import { __ } from '~/locale';
import { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/utils/parsing_utils';
@ -7,16 +7,22 @@ import { getQueryHeaders, toggleQueryPollingByVisibility } from '~/ci/pipeline_d
import { PIPELINE_MINI_GRAPH_POLL_INTERVAL } from '~/ci/pipeline_details/constants';
import getLinkedPipelinesQuery from '~/ci/pipeline_details/graphql/queries/get_linked_pipelines.query.graphql';
import getPipelineStagesQuery from './graphql/queries/get_pipeline_stages.query.graphql';
import LegacyPipelineMiniGraph from './legacy_pipeline_mini_graph/legacy_pipeline_mini_graph.vue';
import LinkedPipelinesMiniList from './linked_pipelines_mini_list.vue';
import PipelineStages from './pipeline_stages.vue';
/**
* Renders the GraphQL instance of the pipeline mini graph.
*/
export default {
i18n: {
linkedPipelinesFetchError: __('There was a problem fetching linked pipelines.'),
stagesFetchError: __('There was a problem fetching the pipeline stages.'),
},
arrowStyles: ['arrow-icon gl-display-inline-block gl-mx-1 gl-text-gray-500 !gl-align-middle'],
components: {
GlIcon,
GlLoadingIcon,
LegacyPipelineMiniGraph,
LinkedPipelinesMiniList,
PipelineStages,
},
props: {
pipelineEtag: {
@ -116,6 +122,9 @@ export default {
};
});
},
hasDownstreamPipelines() {
return Boolean(this.downstreamPipelines.length);
},
pipelinePath() {
return this.linkedPipelines?.path || '';
},
@ -133,15 +142,37 @@ export default {
<template>
<div>
<gl-loading-icon v-if="$apollo.queries.pipelineStages.loading" />
<legacy-pipeline-mini-graph
v-else
data-testid="pipeline-mini-graph"
is-graphql
:downstream-pipelines="downstreamPipelines"
:is-merge-train="isMergeTrain"
:pipeline-path="pipelinePath"
:stages="formattedStages"
:upstream-pipeline="upstreamPipeline"
/>
<div v-else data-testid="pipeline-mini-graph">
<linked-pipelines-mini-list
v-if="upstreamPipeline"
:triggered-by="/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ [
upstreamPipeline,
] /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */"
data-testid="pipeline-mini-graph-upstream"
/>
<gl-icon
v-if="upstreamPipeline"
:class="$options.arrowStyles"
name="long-arrow"
data-testid="upstream-arrow-icon"
/>
<pipeline-stages
:is-merge-train="isMergeTrain"
:stages="formattedStages"
@miniGraphStageClick="$emit('miniGraphStageClick')"
/>
<gl-icon
v-if="hasDownstreamPipelines"
:class="$options.arrowStyles"
name="long-arrow"
data-testid="downstream-arrow-icon"
/>
<linked-pipelines-mini-list
v-if="hasDownstreamPipelines"
:triggered="downstreamPipelines"
:pipeline-path="pipelinePath"
data-testid="pipeline-mini-graph-downstream"
/>
</div>
</div>
</template>

View File

@ -1,29 +1,18 @@
<script>
import PipelineStage from './pipeline_stage.vue';
import LegacyPipelineStage from './legacy_pipeline_mini_graph/legacy_pipeline_stage.vue';
/**
* Renders the pipeline stages portion of the pipeline mini graph.
*/
export default {
components: {
LegacyPipelineStage,
PipelineStage,
},
props: {
stages: {
type: Array,
required: true,
},
updateDropdown: {
type: Boolean,
required: false,
default: false,
},
isGraphql: {
type: Boolean,
required: false,
default: false,
},
isMergeTrain: {
type: Boolean,
required: false,
@ -34,6 +23,10 @@ export default {
required: false,
default: '',
},
stages: {
type: Array,
required: true,
},
},
};
</script>
@ -45,19 +38,11 @@ export default {
class="pipeline-mini-graph-stage-container dropdown gl-display-inline-flex gl-mr-2 gl-my-2 gl-align-middle"
>
<pipeline-stage
v-if="isGraphql"
:stage-id="stage.id"
:is-merge-train="isMergeTrain"
:pipeline-etag="pipelineEtag"
@miniGraphStageClick="$emit('miniGraphStageClick')"
/>
<legacy-pipeline-stage
v-else
:stage="stage"
:update-dropdown="updateDropdown"
:is-merge-train="isMergeTrain"
@miniGraphStageClick="$emit('miniGraphStageClick')"
/>
</div>
</div>
</template>

View File

@ -1318,7 +1318,7 @@
"type": "integer",
"description": "Creates N instances of the job that run in parallel.",
"default": 0,
"minimum": 2,
"minimum": 1,
"maximum": 200
},
{

View File

@ -1,11 +1,12 @@
<script>
import { GlTooltipDirective, GlSprintf, GlSkeletonLoader, GlButton } from '@gitlab/ui';
import { GlButton, GlTooltipDirective, GlSprintf, GlSkeletonLoader } from '@gitlab/ui';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import { n__ } from '~/locale';
import Tracking from '~/tracking';
import ClipboardButton from '~/vue_shared/components/clipboard_button.vue';
import ListItem from '~/vue_shared/components/registry/list_item.vue';
import { joinPaths } from '~/lib/utils/url_utility';
import PublishMessage from '~/packages_and_registries/shared/components/publish_message.vue';
import {
LIST_DELETE_BUTTON_DISABLED,
LIST_DELETE_BUTTON_DISABLED_FOR_MIGRATION,
@ -31,6 +32,7 @@ export default {
ListItem,
GlSkeletonLoader,
CleanupStatus,
PublishMessage,
},
directives: {
GlTooltip: GlTooltipDirective,
@ -101,6 +103,12 @@ export default {
? LIST_DELETE_BUTTON_DISABLED_FOR_MIGRATION
: LIST_DELETE_BUTTON_DISABLED;
},
projectName() {
return this.config.isGroupPage ? this.item.project?.name : '';
},
projectUrl() {
return this.config.isGroupPage ? this.item.project?.webUrl : '';
},
},
methods: {
hideButton() {
@ -175,6 +183,15 @@ export default {
</gl-skeleton-loader>
</div>
</template>
<template #right-primary> &nbsp; </template>
<template #right-secondary>
<publish-message
:project-name="projectName"
:project-url="projectUrl"
:publish-date="item.createdAt"
/>
</template>
<template #right-action>
<delete-button
:title="$options.i18n.REMOVE_REPOSITORY_LABEL"

View File

@ -4,15 +4,14 @@ import {
GlFormCheckbox,
GlIcon,
GlLink,
GlSprintf,
GlTooltipDirective,
GlTruncate,
} from '@gitlab/ui';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import PackageTags from '~/packages_and_registries/shared/components/package_tags.vue';
import PublishMessage from '~/packages_and_registries/shared/components/publish_message.vue';
import PublishMethod from '~/packages_and_registries/shared/components/publish_method.vue';
import ListItem from '~/vue_shared/components/registry/list_item.vue';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import {
DELETE_PACKAGE_TEXT,
ERRORED_PACKAGE_TEXT,
@ -28,12 +27,11 @@ export default {
GlFormCheckbox,
GlIcon,
GlLink,
GlSprintf,
GlTruncate,
PackageTags,
PublishMessage,
PublishMethod,
ListItem,
TimeAgoTooltip,
},
directives: {
GlTooltip: GlTooltipDirective,
@ -144,13 +142,7 @@ export default {
</template>
<template #right-secondary>
<span>
<gl-sprintf :message="__('Created %{timestamp}')">
<template #timestamp>
<time-ago-tooltip :time="packageEntity.createdAt" />
</template>
</gl-sprintf>
</span>
<publish-message :publish-date="packageEntity.createdAt" />
</template>
<template v-if="packageEntity.userPermissions.destroyPackage" #right-action>

View File

@ -4,9 +4,7 @@ import {
GlDisclosureDropdownItem,
GlFormCheckbox,
GlIcon,
GlSprintf,
GlTruncate,
GlLink,
GlBadge,
GlTooltipDirective,
} from '@gitlab/ui';
@ -22,9 +20,9 @@ import {
} from '~/packages_and_registries/package_registry/constants';
import { getPackageTypeLabel } from '~/packages_and_registries/package_registry/utils';
import PackageTags from '~/packages_and_registries/shared/components/package_tags.vue';
import PublishMessage from '~/packages_and_registries/shared/components/publish_message.vue';
import PublishMethod from '~/packages_and_registries/package_registry/components/list/publish_method.vue';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import TimeagoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
export default {
@ -34,14 +32,12 @@ export default {
GlDisclosureDropdownItem,
GlFormCheckbox,
GlIcon,
GlSprintf,
GlTruncate,
GlLink,
GlBadge,
PackageTags,
PublishMessage,
PublishMethod,
ListItem,
TimeagoTooltip,
},
directives: {
GlTooltip: GlTooltipDirective,
@ -73,28 +69,14 @@ export default {
return this.packageEntity?.pipelines?.nodes[0];
},
projectName() {
return this.packageEntity.project.name;
return this.isGroupPage ? this.packageEntity.project?.name : '';
},
projectLink() {
return this.packageEntity.project.webUrl;
projectUrl() {
return this.isGroupPage ? this.packageEntity.project?.webUrl : '';
},
pipelineUser() {
return this.pipeline?.user?.name;
},
publishedMessage() {
if (this.isGroupPage) {
if (this.pipelineUser) {
return s__(`PackageRegistry|Published to %{projectName} by %{author}, %{date}`);
}
return s__(`PackageRegistry|Published to %{projectName}, %{date}`);
}
if (this.pipelineUser) {
return s__(`PackageRegistry|Published by %{author}, %{date}`);
}
return s__(`PackageRegistry|Published %{date}`);
},
errorStatusRow() {
return this.packageEntity.status === PACKAGE_ERROR_STATUS;
},
@ -209,22 +191,12 @@ export default {
</template>
<template v-if="!errorStatusRow" #right-secondary>
<span data-testid="right-secondary">
<gl-sprintf :message="publishedMessage">
<template v-if="isGroupPage" #projectName>
<gl-link
data-testid="root-link"
class="gl-text-decoration-underline"
:href="projectLink"
>{{ projectName }}</gl-link
>
</template>
<template #date>
<timeago-tooltip :time="packageEntity.createdAt" />
</template>
<template v-if="pipelineUser" #author>{{ pipelineUser }}</template>
</gl-sprintf>
</span>
<publish-message
:author="pipelineUser"
:project-name="projectName"
:project-url="projectUrl"
:publish-date="packageEntity.createdAt"
/>
</template>
<template v-if="packageEntity.userPermissions.destroyPackage" #right-action>

View File

@ -0,0 +1,64 @@
<script>
import { GlLink, GlSprintf } from '@gitlab/ui';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import { s__ } from '~/locale';
export default {
components: {
GlLink,
GlSprintf,
TimeAgoTooltip,
},
props: {
author: {
type: String,
required: false,
default: '',
},
projectName: {
type: String,
required: false,
default: '',
},
projectUrl: {
type: String,
required: false,
default: '#',
},
publishDate: {
type: String,
required: true,
},
},
computed: {
publishedMessage() {
if (this.projectName) {
if (this.author) {
return s__('PackageRegistry|Published to %{projectName} by %{author}, %{date}');
}
return s__('PackageRegistry|Published to %{projectName}, %{date}');
}
if (this.author) {
return s__('PackageRegistry|Published by %{author}, %{date}');
}
return s__('PackageRegistry|Published %{date}');
},
},
};
</script>
<template>
<span>
<gl-sprintf :message="publishedMessage">
<template v-if="projectName" #projectName>
<gl-link class="gl-text-decoration-underline" :href="projectUrl">{{ projectName }}</gl-link>
</template>
<template #date>
<time-ago-tooltip :time="publishDate" />
</template>
<template v-if="author" #author>{{ author }}</template>
</gl-sprintf>
</span>
</template>

View File

@ -117,7 +117,7 @@ export default {
return this.targetPath === '';
},
ciJobTokenHelpPage() {
return helpPagePath('ci/jobs/ci_job_token#allow-access-to-your-project-with-a-job-token');
return helpPagePath('ci/jobs/ci_job_token#control-job-token-access-to-your-project');
},
},
methods: {

View File

@ -74,7 +74,9 @@ query getProjectContainerRepositories(
expirationPolicyCleanupStatus
project {
id
name
path
webUrl
}
userPermissions {
destroyContainerRepository

View File

@ -267,12 +267,6 @@ class Environment < ApplicationRecord
last_deployment&.deployable
end
# TODO: remove this method when legacy_last_deployment_group is removed
# in https://gitlab.com/gitlab-org/gitlab/-/issues/439141
def last_deployment_pipeline
last_deployable&.pipeline
end
def last_finished_deployable
last_finished_deployment&.deployable
end
@ -285,21 +279,6 @@ class Environment < ApplicationRecord
last_finished_pipeline&.latest_finished_jobs
end
# This method returns the deployment records of the last deployment pipeline, that successfully executed to this environment.
# e.g.
# A pipeline contains
# - deploy job A => production environment
# - deploy job B => production environment
# In this case, `legacy_last_deployment_group` returns both deployments, whereas `last_deployable` returns only B.
#
# TODO: to be removed in https://gitlab.com/gitlab-org/gitlab/-/issues/439141
def legacy_last_deployment_group
return Deployment.none unless last_deployment_pipeline
successful_deployments.where(
deployable_id: last_deployment_pipeline.latest_builds.pluck(:id))
end
def last_visible_deployable
last_visible_deployment&.deployable
end

View File

@ -28,9 +28,8 @@ class NamespaceSetting < ApplicationRecord
validates :default_branch_protection_defaults, bytesize: { maximum: -> { DEFAULT_BRANCH_PROTECTIONS_DEFAULT_MAX_SIZE } }
validates :remove_dormant_members, inclusion: { in: [false] }, if: :subgroup?
validates :remove_dormant_members_period, numericality: { only_integer: true, greater_than_or_equal_to: 90 }
validate :allow_mfa_for_group
validate :allow_resource_access_token_creation_for_group
validates :allow_mfa_for_subgroups, presence: true, if: :subgroup?
validates :resource_access_token_creation_allowed, presence: true, if: :subgroup?
sanitizes! :default_branch_name
@ -126,18 +125,6 @@ class NamespaceSetting < ApplicationRecord
def subgroup?
!!namespace&.subgroup?
end
def allow_mfa_for_group
if subgroup? && allow_mfa_for_subgroups == false
errors.add(:allow_mfa_for_subgroups, _('is not allowed since the group is not top-level group.'))
end
end
def allow_resource_access_token_creation_for_group
if subgroup? && !resource_access_token_creation_allowed
errors.add(:resource_access_token_creation_allowed, _('is not allowed since the group is not top-level group.'))
end
end
end
NamespaceSetting.prepend_mod_with('NamespaceSetting')

View File

@ -26,8 +26,12 @@ module Projects
private
def validate!(oids)
return if oids.size <= MAX_OIDS
if oids.size <= MAX_OIDS
Gitlab::Metrics::Lfs.validate_link_objects_error_rate.increment(error: false, labels: {})
return
end
Gitlab::Metrics::Lfs.validate_link_objects_error_rate.increment(error: true, labels: {})
raise TooManyOidsError, 'Too many LFS object ids to link, please push them manually'
end

View File

@ -1,3 +1,3 @@
<%= _('Notifications for %{project_or_group} are temporarily disabled due to excessive volume.') % { project_or_group: @project_or_group.full_name } %>
<%= _('Notifications for %{project_or_group} are rate-limited due to the high volume of notifications sent.') % { project_or_group: @project_or_group.full_name } %>
<%= _('To avoid future interruption to notifications for #{project_or_group}, update your notification preferences.') % { project_or_group: @project_or_group.full_name } %>
<%= _('To avoid future interruption to notifications for %{project_or_group}, update your notification preferences.') % { project_or_group: @project_or_group.full_name } %>

View File

@ -9,10 +9,11 @@
- in_group_context_with_iterations = @project.group.present? && issuable_sidebar[:supports_iterations]
- is_merge_request = issuable_type === 'merge_request'
- add_page_specific_style 'page_bundles/labels'
- sidebar_header_classes = 'gl-md-display-flex gl-justify-content-end gl-lg-display-none!' if is_merge_request
%aside.right-sidebar.js-right-sidebar.js-issuable-sidebar{ data: { auto_collapse: true, always_show_toggle: true, signed: { in: signed_in }, issuable_type: issuable_type }, class: "#{sidebar_gutter_collapsed_class(is_merge_request)} #{'right-sidebar-merge-requests' if is_merge_request}", 'aria-live' => 'polite', 'aria-label': issuable_type }
.issuable-sidebar{ class: "#{'is-merge-request' if is_merge_request}" }
.issuable-sidebar-header{ class: "#{'gl-pb-2! gl-md-display-flex gl-justify-content-end gl-lg-display-none!' if is_merge_request}" }
.issuable-sidebar-header{ class: sidebar_header_classes }
= render Pajamas::ButtonComponent.new(button_options: { class: "gutter-toggle gl-float-right js-sidebar-toggle has-tooltip !gl-shadow-none gl-display-block #{'gl-mt-2' if notifications_todos_buttons_enabled?}" , type: 'button', 'aria-label' => _('Toggle sidebar'), title: sidebar_gutter_tooltip_text, data: { container: 'body', placement: 'left', boundary: 'viewport' } }) do
= sidebar_gutter_toggle_icon
- if signed_in

View File

@ -0,0 +1,9 @@
---
name: prevent_issue_epic_search
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/457756
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153668
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/463698
milestone: '17.1'
group: group::duo chat
type: beta
default_enabled: false

View File

@ -3,7 +3,7 @@ name: show_container_registry_tag_signatures
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/442848
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/152135
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/460226
milestone: '17.0'
milestone: '17.1'
group: group::container registry
type: gitlab_com_derisk
default_enabled: false
type: beta
default_enabled: true

View File

@ -36,6 +36,7 @@ if Gitlab::Metrics.enabled? && Gitlab::Runtime.application?
Gitlab::Metrics::GlobalSearchIndexingSlis.initialize_slis! if Gitlab.ee?
Gitlab::Metrics::LooseForeignKeysSlis.initialize_slis!
Gitlab::Metrics::Llm.initialize_slis! if Gitlab.ee?
Gitlab::Metrics::Lfs.initialize_slis!
end
GC::Profiler.enable

View File

@ -2,8 +2,6 @@
data_category: operational
key_path: usage_activity_by_stage_monthly.create.action_monthly_active_users_design_management
description: Monthly active users for design management
product_section: dev
product_stage: plan
product_group: product_planning
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: operational
key_path: usage_activity_by_stage_monthly.plan.issues
description: Count of users creating Issues in last 28 days.
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: usage_activity_by_stage_monthly.plan.notes
description: Count of MAU commenting on an issuable
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: usage_activity_by_stage_monthly.plan.projects
description: Count of MAU creating projects
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: usage_activity_by_stage_monthly.plan.todos
description: Count of MAU creating todos
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: operational
key_path: usage_activity_by_stage_monthly.plan.epics
description: Count distinct author ids from epics
product_section: dev
product_stage: plan
product_group: product_planning
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: usage_activity_by_stage_monthly.plan.label_lists
description: Count of MAU creating label lists on Boards
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_title_changed_monthly
description: Count of MAU editing an issue title
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_description_changed_monthly
description: Count of MAU editing an issue description
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_assignee_changed_monthly
description: Count of MAU changing issue assignees
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_made_confidential_monthly
description: Count of MAU making an issue confidential
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_made_visible_monthly
description: Count of MAU making an issue not confidential
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: operational
key_path: redis_hll_counters.issues_edit.g_project_management_issue_created_monthly
description: Count of MAU creating new issues
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: operational
key_path: redis_hll_counters.issues_edit.g_project_management_issue_closed_monthly
description: Count of MAU closing an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_reopened_monthly
description: Count of MAU re-opening a closed issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_label_changed_monthly
description: Count of MAU changing an issue's label
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: operational
key_path: redis_hll_counters.issues_edit.g_project_management_issue_milestone_changed_monthly
description: Count of MAU changing an issue's milestone
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_cross_referenced_monthly
description: Count of MAU referencing an issue from somewhere else
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_moved_monthly
description: Count of MAU moving an issue to another project
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_related_monthly
description: Count of MAU relating an issue to another issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_unrelated_monthly
description: Count of MAU unrelating an issue to another issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_marked_as_duplicate_monthly
description: Count of MAU marking an issue as a duplicate
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_locked_monthly
description: Count of MAU locking an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_unlocked_monthly
description: Count of MAU unlocking an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_designs_added_monthly
description: Count of MAU adding a design to an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_designs_modified_monthly
description: Count of MAU modifying a design on an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_designs_removed_monthly
description: Count of MAU removing a design from an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_due_date_changed_monthly
description: Count of MAU changing an issue due date
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_time_estimate_changed_monthly
description: Count of MAU changing an issue time estimate
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_time_spent_changed_monthly
description: Count of MAU recording time spent on an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: operational
key_path: redis_hll_counters.issues_edit.g_project_management_issue_comment_added_monthly
description: Count of MAU commenting on an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_comment_edited_monthly
description: Count of MAU editing a comment on an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_comment_removed_monthly
description: Count of MAU deleting a comment from an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.issues_edit.g_project_management_issue_cloned_monthly
description: Count of MAU cloning an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: operational
key_path: redis_hll_counters.issues_edit.issues_edit_total_unique_counts_monthly
description: Aggregate count of MAU taking an action related to an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_approve_monthly
description: Count of MAU using the `/approve` quick action
product_section: dev
product_stage: create
product_group: code_review
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_assign_single_monthly
description: Count of MAU using the `/assign @user1` quick action to assign a single
individual to an issuable
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_assign_multiple_monthly
description: Count of MAU using the `/assign @user1 @user2` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_assign_self_monthly
description: Count of MAU using the `/assign me` quick action to assign self to an
issuable
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_assign_reviewer_monthly
description: Count of MAU using the `/assign_reviewer` or `request_reviewer` quick
action
product_section: dev
product_stage: create
product_group: code_review
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_award_monthly
description: Count of MAU using the `/award` quick action to set an award emoji on
an issuable
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_board_move_monthly
description: Count of MAU using the `/board_move` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_clone_monthly
description: Count of MAU using the `/clone` quick action to clone an issue.
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_close_monthly
description: Count of MAU using the `/close` quick action to close an issuable
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_confidential_monthly
description: Count of MAU using the `/confidential` quick action to set an issue as
confidential
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_copy_metadata_merge_request_monthly
description: Count of MAU using the `/copy_metadata` quick action on a Merge Request
product_section: dev
product_stage: create
product_group: source_code
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_copy_metadata_issue_monthly
description: Count of MAU using the `/copy_metadata` quick action on an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_create_merge_request_monthly
description: Count of MAU using the `/create_merge_request` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_done_monthly
description: Count of MAU using the `/done` quick action to mark a todo as done
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_due_monthly
description: Count of MAU using the `/due` quick action to change the due date on
an issuable
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_duplicate_monthly
description: Count of MAU using the `/duplicate` quick action to mark an issue as
a duplicate of another
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_estimate_monthly
description: Count of MAU using the `/estimate` quick action to set a time estimate
on an issue
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_label_monthly
description: Count of MAU using the `/label` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_lock_monthly
description: Count of MAU using the `/lock` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_milestone_monthly
description: Count of MAU using the `/milestone` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_move_monthly
description: Count of MAU using the `/move` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_reassign_monthly
description: Count of MAU using the `/reassign @user1` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_relabel_monthly
description: Count of MAU using the `/relabel` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_relate_monthly
description: Count of MAU using the `/relate` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_remove_due_date_monthly
description: Count of MAU using the `/remove_due_date` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_remove_estimate_monthly
description: Count of MAU using the `/remove_estimate` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_remove_milestone_monthly
description: Count of MAU using the `/remove_milestone` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_remove_time_spent_monthly
description: Count of MAU using the `/remove_time_spent` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_remove_zoom_monthly
description: Count of MAU using the `/remove_zoom` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_reopen_monthly
description: Count of MAU using the `/reopen` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_shrug_monthly
description: Count of MAU using the `/shrug` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_spend_subtract_monthly
description: Count of MAU using the `/spend` quick action to subtract time spent
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_spend_add_monthly
description: Count of MAU using the `/spend` quick action to add time spent
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_subscribe_monthly
description: Count of MAU using the `/subscribe` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_tableflip_monthly
description: Count of MAU using the `/tableflip` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_title_monthly
description: Count of MAU using the `/title` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_todo_monthly
description: Count of MAU using the `/todo` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -3,8 +3,6 @@ data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_unlabel_specific_monthly
description: Count of MAU using the `/unlabel` or `/remove_label` quick action to
remove one or more specific labels
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_unlabel_all_monthly
description: Count of MAU using the `/unlabel` quick action to remove all labels
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_unlock_monthly
description: Count of MAU using the `/unlock` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_unsubscribe_monthly
description: Count of MAU using the `/unsubscribe` quick action
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

View File

@ -2,8 +2,6 @@
data_category: optional
key_path: redis_hll_counters.quickactions.i_quickactions_zoom_monthly
description: Count of MAU using the `/zoom` quick action on Issues
product_section: dev
product_stage: plan
product_group: project_management
value_type: number
status: active

Some files were not shown because too many files have changed in this diff Show More