Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
9a3d8dc5ac
commit
8a9328f441
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
1fb4c252c713f33db2102315870c1936769319ac
|
||||
7664f8d2e7a364a9d8807790aec06e27903dd4e9
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
v17.1.0-rc7
|
||||
v17.1.0-rc9
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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> </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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -74,7 +74,9 @@ query getProjectContainerRepositories(
|
|||
expirationPolicyCleanupStatus
|
||||
project {
|
||||
id
|
||||
name
|
||||
path
|
||||
webUrl
|
||||
}
|
||||
userPermissions {
|
||||
destroyContainerRepository
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 } %>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in New Issue