Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2025-02-06 18:08:59 +00:00
parent 04027f81f0
commit 511994ec9b
735 changed files with 2343 additions and 1595 deletions

View File

@ -13,7 +13,7 @@
/GITLAB_KAS_VERSION @project_278964_bot_77e28085fcec07f14dfd31c689824b5b @gitlab-org/maintainers/kas-version-maintainers @gitlab-org/maintainers/rails-backend @gitlab-org/delivery
## Allows automated updates to E2E test knapsack reports
/qa/knapsack/**/*.json @project_278964_bot_f559eb4d5c7c39b8a5e0b3ca0fe68d9e @gl-dx
/qa/knapsack/**/*.json @project_278964_bot_bd38289efeb650826d995b5f830ca9cb @gl-dx
## Files that are excluded from required approval
## These rules override the * rule above, so that changes to docs and templates

View File

@ -513,6 +513,11 @@ export const config = {
WorkItemType: {
// this prevents child and parent work item types from overriding each other
fields: {
supportedConversionTypes: {
merge(__, incoming) {
return incoming;
},
},
widgetDefinitions: {
merge(existing = [], incoming) {
if (existing.length === 0) {

View File

@ -46,6 +46,11 @@ export default {
type: String,
required: true,
},
placement: {
type: String,
required: false,
default: 'top',
},
},
data() {
return {
@ -158,7 +163,7 @@ export default {
<gl-popover
:target="target"
boundary="viewport"
placement="top"
:placement="placement"
:css-classes="['gl-min-w-fit']"
show
>

View File

@ -59,6 +59,7 @@ export const handleIssuablePopoverMount = ({
innerText,
referenceType,
target,
placement,
}) => {
// Add listener to actually remove it again
target.addEventListener('mouseleave', handleIssuablePopoverMouseOut);
@ -74,6 +75,7 @@ export const handleIssuablePopoverMount = ({
target,
namespacePath,
iid,
placement,
milestoneId: milestone,
cachedTitle: title || innerText,
},
@ -95,7 +97,7 @@ export default (elements, issuablePopoverMount = handleIssuablePopoverMount) =>
const listenerAddedAttr = 'data-popover-listener-added';
elements.forEach((el) => {
const { projectPath, groupPath, iid, referenceType, milestone } = el.dataset;
const { projectPath, groupPath, iid, referenceType, milestone, placement } = el.dataset;
let { namespacePath } = el.dataset;
const title = el.dataset.mrTitle || el.title;
const { innerText } = el;
@ -115,6 +117,7 @@ export default (elements, issuablePopoverMount = handleIssuablePopoverMount) =>
innerText,
referenceType,
target,
placement,
});
}
});

View File

@ -28,6 +28,7 @@ import initPersistentUserCallouts from './persistent_user_callouts';
import { initUserTracking, initDefaultTrackers } from './tracking';
import GlFieldErrors from './gl_field_errors';
import initUserPopovers from './user_popovers';
import initWorkItemAttributePopovers from './work_item_attribute_popovers';
import initBroadcastNotifications from './broadcast_notification';
import { initCopyCodeButton } from './behaviors/copy_code';
import initGitlabVersionCheck from './gitlab_version_check';
@ -85,6 +86,7 @@ function deferredInitialisation() {
initLogoAnimation();
initPortraitLogoDetection();
initUserPopovers();
initWorkItemAttributePopovers();
initBroadcastNotifications();
initPersistentUserCallouts();
initDefaultTrackers();

View File

@ -8,6 +8,7 @@ import {
GlTab,
GlTabs,
GlTooltipDirective,
GlFormCheckbox,
} from '@gitlab/ui';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import { createAlert } from '~/alert';
@ -28,6 +29,7 @@ import TodoItem from './todo_item.vue';
import TodosEmptyState from './todos_empty_state.vue';
import TodosFilterBar, { SORT_OPTIONS } from './todos_filter_bar.vue';
import TodosMarkAllDoneButton from './todos_mark_all_done_button.vue';
import TodosBulkBar from './todos_bulk_bar.vue';
import TodosPagination from './todos_pagination.vue';
export default {
@ -38,10 +40,12 @@ export default {
GlBadge,
GlTabs,
GlTab,
GlFormCheckbox,
TodosEmptyState,
TodosFilterBar,
TodoItem,
TodosMarkAllDoneButton,
TodosBulkBar,
TodosPagination,
},
directives: {
@ -81,6 +85,8 @@ export default {
showSpinnerWhileLoading: true,
currentTime: new Date(),
currentTimeInterval: null,
multiselectState: {},
selectAllChecked: false,
};
},
apollo: {
@ -127,14 +133,23 @@ export default {
isLoading() {
return this.$apollo.queries.todos.loading;
},
isLoadingWithSpinner() {
return this.isLoading && this.showSpinnerWhileLoading;
},
isFiltered() {
// Ignore sort value. It is always present and not really a filter.
const { sort: _, ...filters } = this.queryFilterValues;
return Object.values(filters).some((value) => value.length > 0);
},
isOnDoneTab() {
return this.currentTab === TABS_INDICES.done;
},
isOnSnoozedTab() {
return this.currentTab === TABS_INDICES.snoozed;
},
isOnAllTab() {
return this.currentTab === TABS_INDICES.all;
},
showEmptyState() {
return !this.isLoading && this.todos.length === 0;
},
@ -143,6 +158,24 @@ export default {
return this.currentTab === TABS_INDICES.pending && !this.showEmptyState;
},
showSelectAll() {
if (!this.glFeatures.todosBulkActions) return false;
if (this.isOnAllTab) return false;
return !(this.showEmptyState || this.isLoadingWithSpinner);
},
selectedIds() {
return this.todos.filter((todo) => this.multiselectState[todo.id]).map((todo) => todo.id);
},
hasIndeterminateSelectAll() {
return this.selectedIds.length > 0 && this.selectedIds.length < this.todos.length;
},
},
watch: {
selectedIds(ids) {
if (!ids.length) this.selectAllChecked = false;
else if (ids.length === this.todos.length) this.selectAllChecked = true;
},
},
created() {
const searchParams = new URLSearchParams(window.location.search);
@ -180,6 +213,8 @@ export default {
return;
}
this.unselectAll();
this.track(INSTRUMENT_TODO_FILTER_CHANGE, {
label: INSTRUMENT_TAB_LABELS[tabIndex],
});
@ -223,6 +258,16 @@ export default {
await this.updateCounts();
},
handleSelectionChanged(id, isSelected) {
this.multiselectState = {
...this.multiselectState,
[id]: isSelected,
};
},
handleBulkAction() {
this.unselectAll();
this.updateAllQueries(false);
},
updateCounts() {
return this.$apollo.queries.pendingTodosCount.refetch();
},
@ -257,6 +302,17 @@ export default {
this.updateTimeoutId = null;
}, TODO_WAIT_BEFORE_RELOAD);
},
selectAll() {
this.multiselectState = Object.fromEntries(this.todos.map((todo) => [todo.id, true]));
},
unselectAll() {
this.multiselectState = {};
this.selectAllChecked = false;
},
handleSelectAllChange(checked) {
if (checked) this.selectAll();
else this.unselectAll();
},
},
};
</script>
@ -321,6 +377,26 @@ export default {
<div>
<div class="gl-flex gl-flex-col">
<div v-if="showSelectAll" class="gl-flex gl-items-baseline gl-gap-2 gl-px-5 gl-py-3">
<gl-form-checkbox
v-model="selectAllChecked"
data-testid="todos-select-all"
class="gl-mb-2 gl-mt-3"
:indeterminate="hasIndeterminateSelectAll"
@change="handleSelectAllChange"
>{{
selectAllChecked ? s__('Todos|Clear all') : s__('Todos|Select all')
}}</gl-form-checkbox
>
<span v-show="selectedIds.length">|</span>
<todos-bulk-bar
v-show="selectedIds.length"
:ids="selectedIds"
:tab="currentTab"
@change="handleBulkAction"
/>
</div>
<gl-loading-icon v-if="isLoading && showSpinnerWhileLoading" size="lg" class="gl-mt-5" />
<div
v-else
@ -339,7 +415,9 @@ export default {
:key="todo.id"
:todo="todo"
:current-user-id="currentUserId"
:selected="selectedIds.includes(todo.id)"
@change="handleItemChanged"
@select-change="handleSelectionChanged"
/>
</transition-group>
</div>

View File

@ -0,0 +1,91 @@
<script>
import { GlButton, GlSprintf, GlTooltipDirective } from '@gitlab/ui';
import { TABS_INDICES } from '~/todos/constants';
import { s__ } from '~/locale';
export default {
components: {
GlButton,
GlSprintf,
},
directives: {
GlTooltip: GlTooltipDirective,
},
props: {
ids: {
type: Array,
required: true,
},
tab: {
type: Number,
required: true,
},
},
computed: {
showResolve() {
return this.tab === TABS_INDICES.pending || this.tab === TABS_INDICES.snoozed;
},
showRestore() {
return this.tab === TABS_INDICES.done;
},
showSnooze() {
return this.tab === TABS_INDICES.pending;
},
showUnsnooze() {
return this.tab === TABS_INDICES.snoozed;
},
},
i18n: {
snoozeTitle: s__('Todos|Snooze selected items'),
unsnoozeTitle: s__('Todos|Remove snooze for selected items'),
resolveTitle: s__('Todos|Mark selected items as done'),
restoreTitle: s__('Todos|Mark selected items as pending'),
},
};
</script>
<template>
<div class="gl-flex gl-flex-grow gl-flex-row gl-items-baseline gl-justify-between gl-gap-1">
<span data-testid="selected-count">
<gl-sprintf :message="n__('Todos|%{count} selected', 'Todos|%{count} selected', ids.length)">
<template #count>
<strong>{{ ids.length }}</strong>
</template>
</gl-sprintf>
</span>
<div>
<gl-button
v-if="showSnooze"
v-gl-tooltip
data-testid="bulk-action-snooze"
icon="clock"
:title="$options.i18n.snoozeTitle"
:aria-label="$options.i18n.snoozeTitle"
/>
<gl-button
v-if="showUnsnooze"
v-gl-tooltip
data-testid="bulk-action-unsnooze"
icon="time-out"
:title="$options.i18n.unsnoozeTitle"
:aria-label="$options.i18n.unsnoozeTitle"
/>
<gl-button
v-if="showResolve"
v-gl-tooltip
data-testid="bulk-action-resolve"
icon="check"
:title="$options.i18n.resolveTitle"
:aria-label="$options.i18n.resolveTitle"
/>
<gl-button
v-if="showRestore"
v-gl-tooltip
data-testid="bulk-action-restore"
icon="redo"
:title="$options.i18n.restoreTitle"
:aria-label="$options.i18n.restoreTitle"
/>
</div>
</div>
</template>

View File

@ -61,8 +61,8 @@ export default {
return truncate(topic, MAX_TOPIC_TITLE_LENGTH);
},
topicTooltipTitle(topic) {
// Matches conditional in app/assets/javascripts/lib/utils/text_utility.js#L88
if (topic.length - 1 > MAX_TOPIC_TITLE_LENGTH) {
const wasTruncated = topic !== this.topicTitle(topic);
if (wasTruncated) {
return topic;
}

View File

@ -0,0 +1,71 @@
import Vue from 'vue';
import VueApollo from 'vue-apollo';
import { defaultClient } from '~/graphql_shared/issuable_client';
import { handleIssuablePopoverMount } from 'ee_else_ce/issuable/popover';
/**
* This method is based on default function of app/assets/javascripts/issuable/popover/index.js
* where we bind popover mount function to all elements qualifying for popovers.
*
* In case of Work Items, where contents are often loaded async (i.e. in drawer and modals), relying
* on default popover mount function is not possible and we need to attach a global event listener on
* document to ensure that popover is mounted on qualifying element when mouse is hovered over it. However
* the logic is still similar to how GFM popover functions.
*
* For any Work Item attribute to have popover, it needs to contain following attributes;
*
* CSS Class: `has-popover`
* Following Data attributes:
* - data-reference-type: This can be `issue`, `work_item`, `merge_request`, or `milestone`
* - data-placement: Placement of popover, default is `top`.
* - data-iid: Internal ID of the work item or issuable (in case reference type is Issue, WI, or MR)
* not required for `milestone`.
* - data-group-path: Path of work item or issuable if it is group-level, not required for `milestone`
* - data-project-path: Path of work item or issuable if it is project-level, not required for `milestone`
* - data-milestone: Milestone ID.
*/
export default function initWorkItemAttributePopovers() {
Vue.use(VueApollo);
const apolloProvider = new VueApollo({
defaultClient,
});
const listenerAddedAttr = 'data-popover-listener-added';
const popoverMountedAttr = 'data-popover-mounted';
document.addEventListener('mouseover', ({ target }) => {
// Return if target doesn't qualify for popover
if (
!target.classList.contains('has-popover') ||
!target.dataset.referenceType ||
target.hasAttribute(listenerAddedAttr)
) {
return;
}
// Extract required metadata
const { referenceType, placement, iid, title, groupPath, projectPath, milestone } =
target.dataset;
let { namespacePath } = target.dataset;
namespacePath = namespacePath || groupPath || projectPath;
const { innerText } = target;
// Attach mount listener to target
target.addEventListener('mouseenter', (e) => {
if (!target.getAttribute(popoverMountedAttr)) {
handleIssuablePopoverMount({
target: e.target,
apolloProvider,
referenceType,
placement,
namespacePath,
iid,
title,
milestone,
innerText: innerText.trim(),
});
}
});
// Ensure that listener is only added once
target.setAttribute(listenerAddedAttr, true);
});
}

View File

@ -3,6 +3,7 @@ import { GlLink } from '@gitlab/ui';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import Tracking from '~/tracking';
import { newWorkItemId } from '~/work_items/utils';
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
import { s__, __ } from '~/locale';
import { MILESTONE_STATE } from '~/sidebar/constants';
import WorkItemSidebarDropdownWidget from '~/work_items/components/shared/work_item_sidebar_dropdown_widget.vue';
@ -101,6 +102,9 @@ export default {
localMilestoneId() {
return this.localMilestone?.id;
},
localMilestoneNumericId() {
return this.localMilestoneId ? getIdFromGraphQLId(this.localMilestoneId) : '';
},
},
watch: {
workItemMilestone(newVal) {
@ -241,7 +245,13 @@ export default {
<div v-if="item.title">{{ item.title }}</div>
</template>
<template #readonly>
<gl-link class="!gl-text-default" :href="localMilestone.webPath">
<gl-link
class="has-popover !gl-text-default"
:data-milestone="localMilestoneNumericId"
data-reference-type="milestone"
data-placement="left"
:href="localMilestone.webPath"
>
{{ localMilestone.title }}{{ expired }}
</gl-link>
</template>

View File

@ -32,7 +32,7 @@ module Types
end
def supported_conversion_types
object.supported_conversion_types(context[:resource_parent])
object.supported_conversion_types(context[:resource_parent], current_user)
end
end
end

View File

@ -7,3 +7,5 @@ module AuditEvents
include AuditEvents::CommonModel
end
end
AuditEvents::InstanceAuditEvent.prepend_mod

View File

@ -12,3 +12,5 @@ module AuditEvents
scope :by_username, ->(username) { where(user_id: find_user_id(username)) }
end
end
AuditEvents::UserAuditEvent.prepend_mod

View File

@ -174,8 +174,8 @@ module WorkItems
}
end
def supported_conversion_types(resource_parent)
type_names = supported_conversion_base_types(resource_parent) - [base_type]
def supported_conversion_types(resource_parent, user)
type_names = supported_conversion_base_types(resource_parent, user) - [base_type]
WorkItems::Type.by_type(type_names).order_by_name_asc
end
@ -225,7 +225,7 @@ module WorkItems
end
# resource_parent is used in EE
def supported_conversion_base_types(_resource_parent)
def supported_conversion_base_types(_resource_parent, _user)
WorkItems::Type.base_types.keys.excluding(*EE_BASE_TYPES)
end

View File

@ -1,6 +1,6 @@
%div{ class: 'top-bar-fixed container-fluid', data: { testid: 'top-bar' } }
.top-bar-container.gl-flex.gl-items-center.gl-gap-2
.gl-grow.gl-basis-0.gl-flex.gl-items-center.gl-justify-start
.gl-grow.gl-basis-0.gl-flex.gl-items-center.gl-justify-start.gl-gap-3
= render Pajamas::ButtonComponent.new(icon: 'sidebar', category: :tertiary, button_options: { class: 'js-super-sidebar-toggle-expand super-sidebar-toggle -gl-ml-3', aria: { controls: 'super-sidebar', expanded: 'false', label: _('Primary navigation sidebar') } })
= render "layouts/nav/breadcrumbs/breadcrumbs"
.gl-flex-none.gl-flex.gl-items-center.gl-justify-center

View File

@ -65,7 +65,9 @@ module Members
log_monitoring_data(user.id, namespace.id, destroyed_count, destroy_duration)
# when all memberships removed, cleanup schedule:
member_deletion_schedule.destroy! if memberships.count === 0
cleanup_schedule(member_deletion_schedule) if memberships.count === 0
rescue Gitlab::Access::AccessDeniedError
cleanup_schedule(member_deletion_schedule)
end
def member_deletion_schedules
@ -82,5 +84,9 @@ module Members
destroy_duration_s: destroy_duration
)
end
def cleanup_schedule(member_deletion_schedule)
member_deletion_schedule.destroy!
end
end
end

View File

@ -2,7 +2,8 @@
key_path: counts.count_total_push_package_to_registry_generic_monthly
description: Monthly count of generic packages pushed to the package registry.
product_group: package_registry
performance_indicator_type: []
performance_indicator_type:
- leading_indicator
value_type: number
status: active
milestone: '17.4'

View File

@ -2,7 +2,8 @@
key_path: counts.count_total_push_package_to_registry_maven_monthly
description: Monthly count of Maven packages pushed to the package registry.
product_group: package_registry
performance_indicator_type: []
performance_indicator_type:
- leading_indicator
value_type: number
status: active
milestone: '17.4'

View File

@ -2,7 +2,8 @@
key_path: counts.count_total_push_package_to_registry_npm_monthly
description: Monthly count of NPM packages pushed to the package registry.
product_group: package_registry
performance_indicator_type: []
performance_indicator_type:
- leading_indicator
value_type: number
status: active
milestone: '17.4'

View File

@ -2,7 +2,8 @@
key_path: counts.count_total_push_package_to_registry_nuget_monthly
description: Monthly count of Nuget packages pushed to the package registry.
product_group: package_registry
performance_indicator_type: []
performance_indicator_type:
- leading_indicator
value_type: number
status: active
milestone: '17.4'

View File

@ -2,7 +2,8 @@
key_path: counts.count_total_push_package_to_registry_pypi_monthly
description: Monthly count of Pypi packages pushed to the package registry.
product_group: package_registry
performance_indicator_type: []
performance_indicator_type:
- leading_indicator
value_type: number
status: active
milestone: '17.4'

View File

@ -2,7 +2,8 @@
key_path: counts.count_total_push_package_to_registry_terraform_module_monthly
description: Monthly count of Terraform modules pushed to the package registry.
product_group: package_registry
performance_indicator_type: []
performance_indicator_type:
- leading_indicator
value_type: number
status: active
milestone: '17.4'

View File

@ -3,7 +3,7 @@ stage: Create
group: Source Code
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
description: "Configure `gitlab-sshd`, a lightweight alternative to OpenSSH, for your GitLab instance."
title: `gitlab-sshd`
title: '`gitlab-sshd`'
---
DETAILS:

View File

@ -2,7 +2,7 @@
stage: Systems
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Reference architecture: Up to 200 RPS or 10,000 users
title: 'Reference architecture: Up to 200 RPS or 10,000 users'
---
DETAILS:

View File

@ -2,7 +2,7 @@
stage: Systems
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Reference architecture: Up to 20 RPS or 1,000 users
title: 'Reference architecture: Up to 20 RPS or 1,000 users'
---
DETAILS:

View File

@ -2,7 +2,7 @@
stage: Systems
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Reference architecture: Up to 500 RPS or 25,000 users
title: 'Reference architecture: Up to 500 RPS or 25,000 users'
---
DETAILS:

View File

@ -2,7 +2,7 @@
stage: Systems
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Reference architecture: Up to 40 RPS or 2,000 users
title: 'Reference architecture: Up to 40 RPS or 2,000 users'
---
DETAILS:

View File

@ -2,7 +2,7 @@
stage: Systems
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Reference architecture: Up to 60 RPS or 3,000 users
title: 'Reference architecture: Up to 60 RPS or 3,000 users'
---
DETAILS:

View File

@ -2,7 +2,7 @@
stage: Systems
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Reference architecture: Up to 1000 RPS or 50,000 users
title: 'Reference architecture: Up to 1000 RPS or 50,000 users'
---
DETAILS:

View File

@ -2,7 +2,7 @@
stage: Systems
group: Distribution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Reference architecture: Up to 100 RPS or 5,000 users
title: 'Reference architecture: Up to 100 RPS or 5,000 users'
---
DETAILS:

View File

@ -3,7 +3,7 @@ stage: AI-Powered
group: Custom Models
description: Self-Hosted AI Models Licensing and Offerings
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Self-Hosted AI Models: Licensing and Offerings
title: 'Self-Hosted AI Models: Licensing and Offerings'
---
DETAILS:

View File

@ -4821,6 +4821,29 @@ Input type: `DeleteContainerProtectionTagRuleInput`
| <a id="mutationdeletecontainerprotectiontagrulecontainerprotectiontagrule"></a>`containerProtectionTagRule` **{warning-solid}** | [`ContainerProtectionTagRule`](#containerprotectiontagrule) | **Deprecated:** **Status**: Experiment. Introduced in GitLab 17.8. |
| <a id="mutationdeletecontainerprotectiontagruleerrors"></a>`errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. |
### `Mutation.deleteConversationThread`
DETAILS:
**Introduced** in GitLab 17.9.
**Status**: Experiment.
Input type: `DeleteConversationThreadInput`
#### Arguments
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="mutationdeleteconversationthreadclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
| <a id="mutationdeleteconversationthreadthreadid"></a>`threadId` | [`AiConversationThreadID!`](#aiconversationthreadid) | Global ID of the thread to delete. |
#### Fields
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="mutationdeleteconversationthreadclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
| <a id="mutationdeleteconversationthreaderrors"></a>`errors` | [`[String!]!`](#string) | List of errors that occurred whilst trying to delete the thread. |
| <a id="mutationdeleteconversationthreadsuccess"></a>`success` | [`Boolean!`](#boolean) | Returns true if thread was successfully deleted. |
### `Mutation.deletePackagesProtectionRule`
Deletes a protection rule for packages.

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Caching in GitLab CI/CD
---
# Caching in GitLab CI/CD
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: GitLab ChatOps
---
# GitLab ChatOps
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Using GitLab CI/CD with a Bitbucket Cloud repository
---
# Using GitLab CI/CD with a Bitbucket Cloud repository
DETAILS:
**Tier:** Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Using GitLab CI/CD with a GitHub repository
---
# Using GitLab CI/CD with a GitHub repository
DETAILS:
**Tier:** Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: GitLab CI/CD for external repositories
---
# GitLab CI/CD for external repositories
DETAILS:
**Tier:** Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Deploy to Amazon Elastic Container Service
---
# Deploy to Amazon Elastic Container Service
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Use GitLab CI/CD to deploy to Heroku
---
# Use GitLab CI/CD to deploy to Heroku
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Deploy to AWS from GitLab CI/CD
---
# Deploy to AWS from GitLab CI/CD
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Software Supply Chain Security
group: Pipeline Security
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Configure OpenID Connect in AWS to retrieve temporary credentials
---
# Configure OpenID Connect in AWS to retrieve temporary credentials
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Software Supply Chain Security
group: Pipeline Security
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Configure OpenID Connect in Azure to retrieve temporary credentials
---
# Configure OpenID Connect in Azure to retrieve temporary credentials
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Software Supply Chain Security
group: Pipeline Security
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Configure OpenID Connect with GCP Workload Identity Federation
---
# Configure OpenID Connect with GCP Workload Identity Federation
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Software Supply Chain Security
group: Pipeline Security
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Connect to cloud services
---
# Connect to cloud services
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: This page is maintained by Developer Relations, author @dnsmichi, see https://handbook.gitlab.com/handbook/marketing/developer-relations/developer-advocacy/content/#maintained-documentation
title: CI/CD component examples
---
# CI/CD component examples
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: CI/CD components
---
# CI/CD components
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Debugging CI/CD pipelines
---
# Debugging CI/CD pipelines
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Authenticate with registry in Docker-in-Docker
---
# Authenticate with registry in Docker-in-Docker
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: 'Tutorial: Use Buildah in a rootless container with GitLab Runner Operator on OpenShift'
---
# Tutorial: Use Buildah in a rootless container with GitLab Runner Operator on OpenShift
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Make Docker-in-Docker builds faster with Docker layer caching
---
# Make Docker-in-Docker builds faster with Docker layer caching
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Docker integration
---
# Docker integration
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Use Docker to build Docker images
---
# Use Docker to build Docker images
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Runner
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Run your CI/CD jobs in Docker containers
---
# Run your CI/CD jobs in Docker containers
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Use kaniko to build Docker images
---
# Use kaniko to build Docker images
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Environments
---
# Environments
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Configure Kubernetes deployments (deprecated)
---
# Configure Kubernetes deployments (deprecated)
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -3,10 +3,9 @@ stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
description: Require approvals prior to deploying to a Protected Environment
title: Deployment approvals
---
# Deployment approvals
DETAILS:
**Tier:** Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Deployment safety
---
# Deployment safety
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Deployments
---
# Deployments
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Environments Dashboard
---
# Environments Dashboard
DETAILS:
**Tier:** Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Track deployments of an external deployment tool
---
# Track deployments of an external deployment tool
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Incremental rollouts with GitLab CI/CD
---
# Incremental rollouts with GitLab CI/CD
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Dashboard for Kubernetes
---
# Dashboard for Kubernetes
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Protected environments
---
# Protected environments
DETAILS:
**Tier:** Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Running Composer and npm scripts with deployment via SCP in GitLab CI/CD
---
# Running Composer and npm scripts with deployment via SCP in GitLab CI/CD
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Deploy
group: Environments
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Using Dpl as a deployment tool
---
# Using Dpl as a deployment tool
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: GitLab CI/CD examples
---
# GitLab CI/CD examples
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Testing PHP projects
---
# Testing PHP projects
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Package
group: Package Registry
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Publish npm packages to the GitLab package registry using semantic-release
---
# Publish npm packages to the GitLab package registry using semantic-release
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Package
group: Container Registry
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: GitLab and Google Cloud integration
---
# GitLab and Google Cloud integration
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Get started with GitLab CI/CD
---
# Get started with GitLab CI/CD
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Runner
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Interactive web terminals
---
# Interactive web terminals
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Software Supply Chain Security
group: Pipeline Security
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: GitLab CI/CD job token
---
# GitLab CI/CD job token
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: CI/CD Jobs
---
# CI/CD Jobs
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Job artifacts
---
# Job artifacts
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Troubleshooting job artifacts
---
# Troubleshooting job artifacts
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Control how jobs run
---
# Control how jobs run
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: CI/CD job logs
---
# CI/CD job logs
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Specify when jobs run with `rules`
---
# Specify when jobs run with `rules`
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Troubleshooting jobs
---
# Troubleshooting jobs
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Software Supply Chain Security
group: Pipeline Security
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Using SSH keys with GitLab CI/CD
---
# Using SSH keys with GitLab CI/CD
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Migrating from Bamboo
---
# Migrating from Bamboo
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Migrating from CircleCI
---
# Migrating from CircleCI
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Migrate a Maven build from Jenkins to GitLab CI/CD
---
# Migrate a Maven build from Jenkins to GitLab CI/CD
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Migrating from GitHub Actions
---
# Migrating from GitHub Actions
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Migrating from Jenkins
---
# Migrating from Jenkins
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Plan a migration from another tool to GitLab CI/CD
---
# Plan a migration from another tool to GitLab CI/CD
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Migrating from TeamCity
---
# Migrating from TeamCity
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Mobile
group: Mobile Devops
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Mobile DevOps
---
# Mobile DevOps
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Mobile
group: Mobile Devops
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: 'Tutorial: Build Android apps with GitLab Mobile DevOps'
---
# Tutorial: Build Android apps with GitLab Mobile DevOps
In this tutorial, you'll create a pipeline by using GitLab CI/CD that builds your Android mobile app,
signs it with your credentials, and distributes it to app stores.

View File

@ -2,10 +2,9 @@
stage: Mobile
group: Mobile Devops
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: 'Tutorial: Build iOS apps with GitLab Mobile DevOps'
---
# Tutorial: Build iOS apps with GitLab Mobile DevOps
In this tutorial, you'll create a pipeline by using GitLab CI/CD that builds your iOS mobile app,
signs it with your credentials, and distributes it to app stores.

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Pipeline editor
---
# Pipeline editor
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -3,10 +3,9 @@ stage: Verify
group: Pipeline Execution
description: Calculations, quotas, purchase information.
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Compute minutes
---
# Compute minutes
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Downstream pipelines
---
# Downstream pipelines
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Troubleshooting downstream pipelines
---
# Troubleshooting downstream pipelines
## Trigger job fails and does not create multi-project pipeline
With multi-project pipelines, the trigger job fails and does not create the downstream pipeline if:

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Authoring
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: CI/CD pipelines
---
# CI/CD pipelines
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Merge request pipelines
---
# Merge request pipelines
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Merge trains
---
# Merge trains
DETAILS:
**Tier:** Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Merged results pipelines
---
# Merged results pipelines
DETAILS:
**Tier:** Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

View File

@ -2,10 +2,9 @@
stage: Verify
group: Pipeline Execution
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Merge request pipeline troubleshooting
---
# Merge request pipeline troubleshooting
DETAILS:
**Tier:** Free, Premium, Ultimate
**Offering:** GitLab.com, GitLab Self-Managed, GitLab Dedicated

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