Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
3dfa4bff20
commit
0545a43e37
|
|
@ -39,6 +39,41 @@ review-docs-cleanup:
|
|||
script:
|
||||
- ./scripts/trigger-build.rb docs cleanup
|
||||
|
||||
.review-docs-hugo:
|
||||
extends:
|
||||
- .default-retry
|
||||
- .docs:rules:review-docs
|
||||
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}-alpine
|
||||
stage: review
|
||||
needs: []
|
||||
variables:
|
||||
GIT_DEPTH: 1
|
||||
# By default, deploy the Review App using the `main` branch of the `gitlab-org/technical-writing-group/gitlab-docs-hugo` project
|
||||
DOCS_BRANCH: main
|
||||
environment:
|
||||
name: review-docs/mr-${CI_MERGE_REQUEST_IID}-hugo
|
||||
auto_stop_in: 2 weeks
|
||||
url: https://new.docs.gitlab.com/upstream-review-mr-${DOCS_GITLAB_REPO_SUFFIX}-${CI_MERGE_REQUEST_IID}
|
||||
on_stop: review-docs-hugo-cleanup
|
||||
before_script:
|
||||
- source ./scripts/utils.sh
|
||||
- install_gitlab_gem
|
||||
|
||||
# Deploy documentation review app by using GitLab Docs Hugo project (gitlab-org/technical-writing-group/gitlab-docs-hugo)
|
||||
review-docs-hugo-deploy:
|
||||
extends: .review-docs-hugo
|
||||
script:
|
||||
- ./scripts/trigger-build.rb docs-hugo deploy
|
||||
|
||||
# Cleanup remote environment of gitlab-org/technical-writing-group/gitlab-docs-hugo
|
||||
review-docs-hugo-cleanup:
|
||||
extends: .review-docs-hugo
|
||||
environment:
|
||||
name: review-docs/mr-${CI_MERGE_REQUEST_IID}-hugo
|
||||
action: stop
|
||||
script:
|
||||
- ./scripts/trigger-build.rb docs-hugo cleanup
|
||||
|
||||
.docs-markdown-lint-image:
|
||||
# When updating the image version here, update it in /scripts/lint-doc.sh too.
|
||||
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-markdown:alpine-3.20-vale-3.7.1-markdownlint2-0.14.0-lychee-0.15.1
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
# Cop supports --autocorrect.
|
||||
Layout/ArgumentAlignment:
|
||||
Exclude:
|
||||
- 'ee/app/services/ee/issues/clone_service.rb'
|
||||
- 'ee/app/services/ee/keys/create_service.rb'
|
||||
- 'ee/app/services/ee/projects/create_from_template_service.rb'
|
||||
- 'ee/app/services/ee/projects/gitlab_projects_import_service.rb'
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ export default {
|
|||
return {
|
||||
text: __('New custom emoji'),
|
||||
attributes: {
|
||||
variant: 'info',
|
||||
variant: 'confirm',
|
||||
to: '/new',
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -39,7 +39,6 @@ export default {
|
|||
modalProps: {
|
||||
primary: {
|
||||
text: s__('Environments|Clean up'),
|
||||
attributes: [{ variant: 'info' }],
|
||||
},
|
||||
cancel: {
|
||||
text: __('Cancel'),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<script>
|
||||
import { GlBadge, GlButton } from '@gitlab/ui';
|
||||
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
|
||||
import ProtectedBadge from '~/vue_shared/components/badges/protected_badge.vue';
|
||||
import { s__, sprintf, n__ } from '~/locale';
|
||||
import { accessLevelsConfig } from '~/projects/settings/branch_rules/components/view/constants';
|
||||
|
|
@ -18,12 +19,14 @@ export default {
|
|||
matchingBranches: s__('BranchRules|%{total} matching %{subject}'),
|
||||
pushAccessLevels: s__('BranchRules|Allowed to push and merge'),
|
||||
mergeAccessLevels: s__('BranchRules|Allowed to merge'),
|
||||
squashSetting: s__('BranchRules|Squash commits: %{setting}'),
|
||||
},
|
||||
components: {
|
||||
GlBadge,
|
||||
GlButton,
|
||||
ProtectedBadge,
|
||||
},
|
||||
mixins: [glFeatureFlagsMixin()],
|
||||
inject: {
|
||||
branchRulesPath: {
|
||||
default: '',
|
||||
|
|
@ -94,6 +97,11 @@ export default {
|
|||
subject: n__('branch', 'branches', this.matchingBranchesCount),
|
||||
});
|
||||
},
|
||||
squashSettingText() {
|
||||
return sprintf(this.$options.i18n.squashSetting, {
|
||||
setting: this.branchProtection?.squashSetting,
|
||||
});
|
||||
},
|
||||
mergeAccessLevels() {
|
||||
const { mergeAccessLevels } = this.branchProtection || {};
|
||||
return this.getAccessLevels(mergeAccessLevels);
|
||||
|
|
@ -131,6 +139,9 @@ export default {
|
|||
if (this.pushAccessLevels.total > 0) {
|
||||
approvalDetails.push(this.pushAccessLevelsText);
|
||||
}
|
||||
if (this.glFeatures.branchRuleSquashSettings && this.branchProtection?.squashSetting) {
|
||||
approvalDetails.push(this.squashSettingText);
|
||||
}
|
||||
return approvalDetails;
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -43,12 +43,6 @@ export const VISUALIZATION_TYPE_SINGLE_STAT = 'SingleStat';
|
|||
export const EVENT_LABEL_VIEWED_DASHBOARD_DESIGNER = 'user_viewed_dashboard_designer';
|
||||
export const EVENT_LABEL_EXCLUDE_ANONYMISED_USERS = 'exclude_anonymised_users';
|
||||
|
||||
export const AI_IMPACT_DASHBOARD = 'ai_impact';
|
||||
|
||||
// The URL name already in use is `value_streams_dashboard`,
|
||||
// the slug name for a dashboard must match the URL path that is used
|
||||
export const BUILT_IN_VALUE_STREAM_DASHBOARD = 'value_streams_dashboard';
|
||||
|
||||
// The URL for shared analytics dashboards is based on the name of the YAML config
|
||||
// YAML configured VSD uses `/value_streams` for the custom file name
|
||||
export const CUSTOM_VALUE_STREAM_DASHBOARD = 'value_streams';
|
||||
|
|
|
|||
|
|
@ -1,13 +1,5 @@
|
|||
<script>
|
||||
import {
|
||||
GlButton,
|
||||
GlFormInput,
|
||||
GlFormGroup,
|
||||
GlLink,
|
||||
GlIcon,
|
||||
GlSprintf,
|
||||
GlExperimentBadge,
|
||||
} from '@gitlab/ui';
|
||||
import { GlButton, GlFormInput, GlFormGroup, GlIcon, GlExperimentBadge } from '@gitlab/ui';
|
||||
import { isEqual } from 'lodash';
|
||||
import { createAlert } from '~/alert';
|
||||
import { cloneWithoutReferences } from '~/lib/utils/common_utils';
|
||||
|
|
@ -17,13 +9,10 @@ import { InternalEvents } from '~/tracking';
|
|||
import UrlSync, { HISTORY_REPLACE_UPDATE_METHOD } from '~/vue_shared/components/url_sync.vue';
|
||||
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
|
||||
import { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';
|
||||
import { helpPagePath } from '~/helpers/help_page_helper';
|
||||
import {
|
||||
EVENT_LABEL_VIEWED_DASHBOARD_DESIGNER,
|
||||
EVENT_LABEL_EXCLUDE_ANONYMISED_USERS,
|
||||
DASHBOARD_STATUS_BETA,
|
||||
AI_IMPACT_DASHBOARD,
|
||||
BUILT_IN_VALUE_STREAM_DASHBOARD,
|
||||
CUSTOM_VALUE_STREAM_DASHBOARD,
|
||||
} from './constants';
|
||||
import GridstackWrapper from './gridstack_wrapper.vue';
|
||||
|
|
@ -43,9 +32,7 @@ export default {
|
|||
GlButton,
|
||||
GlFormInput,
|
||||
GlIcon,
|
||||
GlLink,
|
||||
GlFormGroup,
|
||||
GlSprintf,
|
||||
GlExperimentBadge,
|
||||
UrlSync,
|
||||
AvailableVisualizationsDrawer,
|
||||
|
|
@ -155,12 +142,6 @@ export default {
|
|||
getDashboardConfig(this.dashboard),
|
||||
);
|
||||
},
|
||||
isValueStreamsDashboard() {
|
||||
return this.dashboard.slug === BUILT_IN_VALUE_STREAM_DASHBOARD;
|
||||
},
|
||||
isAiImpactDashboard() {
|
||||
return this.dashboard.slug === AI_IMPACT_DASHBOARD;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
isNewDashboard(isNew) {
|
||||
|
|
@ -344,19 +325,9 @@ export default {
|
|||
this.dashboard.panels.push(...panels);
|
||||
},
|
||||
},
|
||||
i18n: {
|
||||
alternativeAiImpactDescription: s__(
|
||||
'Analytics|Visualize the relation between AI usage and SDLC trends. Learn more about %{docsLinkStart}AI Impact analytics%{docsLinkEnd} and %{subscriptionLinkStart}GitLab Duo Pro seats usage%{subscriptionLinkEnd}.',
|
||||
),
|
||||
},
|
||||
HISTORY_REPLACE_UPDATE_METHOD,
|
||||
FORM_GROUP_CLASS: 'gl-w-full sm:gl-w-3/10 gl-min-w-20 gl-m-0',
|
||||
FORM_INPUT_CLASS: 'form-control gl-mr-4 gl-border-gray-200',
|
||||
VSD_DOCUMENTATION_LINK: helpPagePath('user/analytics/value_streams_dashboard'),
|
||||
AI_IMPACT_DOCUMENTATION_LINK: helpPagePath('user/analytics/ai_impact_analytics'),
|
||||
DUO_PRO_SUBSCRIPTION_ADD_ON_LINK: helpPagePath('subscriptions/subscription-add-ons', {
|
||||
anchor: 'assign-gitlab-duo-seats',
|
||||
}),
|
||||
};
|
||||
</script>
|
||||
|
||||
|
|
@ -382,31 +353,8 @@ export default {
|
|||
data-testid="dashboard-description"
|
||||
>
|
||||
<p class="gl-mb-0">
|
||||
<!-- TODO: Remove this alternative description in https://gitlab.com/gitlab-org/gitlab/-/issues/465569 -->
|
||||
<gl-sprintf
|
||||
v-if="isAiImpactDashboard"
|
||||
:message="$options.i18n.alternativeAiImpactDescription"
|
||||
>
|
||||
<template #docsLink="{ content }">
|
||||
<gl-link :href="$options.AI_IMPACT_DOCUMENTATION_LINK">{{ content }}</gl-link>
|
||||
</template>
|
||||
|
||||
<template #subscriptionLink="{ content }">
|
||||
<gl-link :href="$options.DUO_PRO_SUBSCRIPTION_ADD_ON_LINK">{{ content }}</gl-link>
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
<template v-else>
|
||||
{{ dashboardDescription }}
|
||||
<!-- TODO: Remove this link in https://gitlab.com/gitlab-org/gitlab/-/issues/465569 -->
|
||||
<gl-sprintf
|
||||
v-if="isValueStreamsDashboard"
|
||||
:message="__('%{linkStart} Learn more%{linkEnd}.')"
|
||||
>
|
||||
<template #link="{ content }">
|
||||
<gl-link :href="$options.VSD_DOCUMENTATION_LINK">{{ content }}</gl-link>
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
</template>
|
||||
{{ dashboardDescription }}
|
||||
<slot name="after-description"></slot>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import {
|
|||
sprintfWorkItem,
|
||||
I18N_WORK_ITEM_ERROR_FETCHING_TYPES,
|
||||
ROUTES,
|
||||
RELATED_ITEM_ID_URL_QUERY_PARAM,
|
||||
} from '../constants';
|
||||
import namespaceWorkItemTypesQuery from '../graphql/namespace_work_item_types.query.graphql';
|
||||
import CreateWorkItem from './create_work_item.vue';
|
||||
|
|
@ -134,6 +135,7 @@ export default {
|
|||
fullPath: this.fullPath,
|
||||
isGroup: this.isGroup,
|
||||
workItemTypeName: this.workItemTypeName,
|
||||
query: this.relatedItem ? `?${RELATED_ITEM_ID_URL_QUERY_PARAM}=${this.relatedItem.id}` : '',
|
||||
});
|
||||
},
|
||||
newWorkItemText() {
|
||||
|
|
@ -202,7 +204,10 @@ export default {
|
|||
event.preventDefault();
|
||||
|
||||
if (this.useVueRouter) {
|
||||
this.$router.push({ name: ROUTES.new });
|
||||
this.$router.push({
|
||||
name: ROUTES.new,
|
||||
query: { [RELATED_ITEM_ID_URL_QUERY_PARAM]: this.relatedItem?.id },
|
||||
});
|
||||
} else {
|
||||
visitUrl(this.newWorkItemPath);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -188,6 +188,10 @@ export default {
|
|||
required: false,
|
||||
default: false,
|
||||
},
|
||||
isGroup: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
@ -551,6 +555,7 @@ export default {
|
|||
:related-item="relatedItemData"
|
||||
:work-item-type-name="workItemType.toUpperCase()"
|
||||
:show-project-selector="!isEpic"
|
||||
:is-group="isGroup"
|
||||
hide-button
|
||||
@workItemCreated="$emit('workItemCreated')"
|
||||
@hideModal="isCreateWorkItemModalVisible = false"
|
||||
|
|
|
|||
|
|
@ -676,6 +676,7 @@ export default {
|
|||
:is-sticky-header-showing="isStickyHeaderShowing"
|
||||
:work-item-notifications-subscribed="workItemNotificationsSubscribed"
|
||||
:work-item-author-id="workItemAuthorId"
|
||||
:is-group="isGroupWorkItem"
|
||||
@hideStickyHeader="hideStickyHeader"
|
||||
@showStickyHeader="showStickyHeader"
|
||||
@deleteWorkItem="$emit('deleteWorkItem', { workItemType, workItemId: workItem.id })"
|
||||
|
|
@ -773,6 +774,7 @@ export default {
|
|||
:has-children="hasChildren"
|
||||
:work-item-author-id="workItemAuthorId"
|
||||
:can-create-related-item="workItemLinkedItems !== undefined"
|
||||
:is-group="isGroupWorkItem"
|
||||
@deleteWorkItem="$emit('deleteWorkItem', { workItemType, workItemId: workItem.id })"
|
||||
@toggleWorkItemConfidentiality="toggleConfidentiality"
|
||||
@error="updateError = $event"
|
||||
|
|
|
|||
|
|
@ -71,6 +71,10 @@ export default {
|
|||
required: false,
|
||||
default: 0,
|
||||
},
|
||||
isGroup: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
canUpdate() {
|
||||
|
|
@ -175,6 +179,7 @@ export default {
|
|||
:work-item-state="workItem.state"
|
||||
:is-modal="isModal"
|
||||
:work-item-author-id="workItemAuthorId"
|
||||
:is-group="isGroup"
|
||||
@deleteWorkItem="$emit('deleteWorkItem')"
|
||||
@toggleWorkItemConfidentiality="
|
||||
$emit('toggleWorkItemConfidentiality', !workItem.confidential)
|
||||
|
|
|
|||
|
|
@ -344,6 +344,7 @@ export const DEFAULT_EPIC_COLORS = '#1068bf';
|
|||
|
||||
export const MAX_FREQUENT_PROJECTS = 3;
|
||||
export const CREATE_NEW_WORK_ITEM_MODAL = 'create_new_work_item_modal';
|
||||
export const RELATED_ITEM_ID_URL_QUERY_PARAM = 'related_item_id';
|
||||
|
||||
export const WORK_ITEM_REFERENCE_CHAR = '#';
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
query workItemRelatedItem($id: WorkItemID!) {
|
||||
workItem(id: $id) {
|
||||
id
|
||||
reference
|
||||
workItemType {
|
||||
id
|
||||
name
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
<script>
|
||||
import { visitUrl } from '~/lib/utils/url_utility';
|
||||
import { visitUrl, getParameterByName, updateHistory, removeParams } from '~/lib/utils/url_utility';
|
||||
import CreateWorkItem from '../components/create_work_item.vue';
|
||||
import { ROUTES } from '../constants';
|
||||
import { ROUTES, RELATED_ITEM_ID_URL_QUERY_PARAM } from '../constants';
|
||||
import workItemRelatedItemQuery from '../graphql/work_item_related_item.query.graphql';
|
||||
|
||||
export default {
|
||||
name: 'CreateWorkItemPage',
|
||||
|
|
@ -16,6 +17,36 @@ export default {
|
|||
default: null,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
relatedItem: null,
|
||||
relatedItemId: getParameterByName(RELATED_ITEM_ID_URL_QUERY_PARAM),
|
||||
};
|
||||
},
|
||||
apollo: {
|
||||
relatedItem: {
|
||||
query: workItemRelatedItemQuery,
|
||||
variables() {
|
||||
return {
|
||||
id: this.relatedItemId,
|
||||
};
|
||||
},
|
||||
skip() {
|
||||
return !this.relatedItemId;
|
||||
},
|
||||
update(data) {
|
||||
return {
|
||||
id: this.relatedItemId,
|
||||
reference: data.workItem.reference,
|
||||
type: data.workItem.workItemType.name,
|
||||
};
|
||||
},
|
||||
error() {
|
||||
// if we cannot find an item with the given id, ignore it and remove it from the url.
|
||||
updateHistory({ url: removeParams([RELATED_ITEM_ID_URL_QUERY_PARAM]), replace: true });
|
||||
},
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
workItemCreated(workItem) {
|
||||
if (this.$router) {
|
||||
|
|
@ -35,6 +66,7 @@ export default {
|
|||
<create-work-item
|
||||
:work-item-type-name="workItemTypeName"
|
||||
:is-group="isGroup"
|
||||
:related-item="relatedItem"
|
||||
@workItemCreated="workItemCreated"
|
||||
/>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -161,12 +161,12 @@ export const markdownPreviewPath = ({ fullPath, iid, isGroup = false }) => {
|
|||
};
|
||||
|
||||
// the path for creating a new work item of that type, e.g. /groups/gitlab-org/-/epics/new
|
||||
export const newWorkItemPath = ({ fullPath, isGroup = false, workItemTypeName }) => {
|
||||
export const newWorkItemPath = ({ fullPath, isGroup = false, workItemTypeName, query = '' }) => {
|
||||
const domain = gon.relative_url_root || '';
|
||||
const basePath = isGroup ? `groups/${fullPath}` : fullPath;
|
||||
const type =
|
||||
WORK_ITEMS_TYPE_MAP[workItemTypeName]?.routeParamName || WORK_ITEM_TYPE_ROUTE_WORK_ITEM;
|
||||
return `${domain}/${basePath}/-/${type}/new`;
|
||||
return `${domain}/${basePath}/-/${type}/new${query}`;
|
||||
};
|
||||
|
||||
export const getDisplayReference = (workItemFullPath, workitemReference) => {
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ module Projects
|
|||
|
||||
before_action do
|
||||
push_frontend_feature_flag(:edit_branch_rules, @project)
|
||||
push_frontend_feature_flag(:branch_rule_squash_settings, @project)
|
||||
push_frontend_ability(ability: :admin_project, resource: @project, user: current_user)
|
||||
push_frontend_ability(ability: :admin_protected_branch, resource: @project, user: current_user)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ module Projects
|
|||
def relation
|
||||
@experiments = ::Ml::Experiment
|
||||
.by_project(project)
|
||||
.exclude_experiments_for_models
|
||||
.including_project
|
||||
|
||||
with_candidate_count
|
||||
|
|
|
|||
|
|
@ -323,8 +323,6 @@ class Packages::Package < ApplicationRecord
|
|||
# This is a temp advisory lock to prevent race conditions. We will switch to use database `upsert`
|
||||
# once we have a database unique index: https://gitlab.com/gitlab-org/gitlab/-/issues/424238#note_2187274213
|
||||
def prevent_concurrent_inserts
|
||||
return if Feature.disabled?(:use_exclusive_lease_in_mvn_find_or_create_package, project)
|
||||
|
||||
lock_key = [self.class.table_name, project_id, name, version].join('-')
|
||||
lock_expression = "hashtext(#{connection.quote(lock_key)})"
|
||||
|
||||
|
|
|
|||
|
|
@ -15,8 +15,6 @@ class SentNotification < ApplicationRecord
|
|||
validates :in_reply_to_discussion_id, format: { with: /\A\h{40}\z/, allow_nil: true }
|
||||
validate :note_valid
|
||||
|
||||
after_save :keep_around_commit, if: :for_commit?
|
||||
|
||||
class << self
|
||||
def reply_key
|
||||
SecureRandom.hex(16)
|
||||
|
|
@ -122,8 +120,4 @@ class SentNotification < ApplicationRecord
|
|||
)
|
||||
end
|
||||
end
|
||||
|
||||
def keep_around_commit
|
||||
project.repository.keep_around(self.commit_id, source: self.class.name)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -107,8 +107,6 @@ class Todo < ApplicationRecord
|
|||
state :done
|
||||
end
|
||||
|
||||
after_save :keep_around_commit, if: :commit_id
|
||||
|
||||
class << self
|
||||
# Returns all todos for the given group ids and their descendants.
|
||||
#
|
||||
|
|
@ -388,10 +386,6 @@ class Todo < ApplicationRecord
|
|||
|
||||
private
|
||||
|
||||
def keep_around_commit
|
||||
project.repository.keep_around(self.commit_id, source: self.class.name)
|
||||
end
|
||||
|
||||
def build_work_item_target_url
|
||||
::Gitlab::UrlBuilder.build(
|
||||
target,
|
||||
|
|
|
|||
|
|
@ -18,12 +18,7 @@ module Packages
|
|||
|
||||
ServiceResponse.success(payload: { package: package })
|
||||
rescue ActiveRecord::RecordInvalid => e
|
||||
reason = if e.record&.errors&.of_kind?(:name, :taken) && ::Feature.enabled?(
|
||||
:use_exclusive_lease_in_mvn_find_or_create_package, project)
|
||||
:name_taken
|
||||
else
|
||||
:invalid_parameter
|
||||
end
|
||||
reason = e.record&.errors&.of_kind?(:name, :taken) ? :name_taken : :invalid_parameter
|
||||
|
||||
ServiceResponse.error(message: e.message, reason: reason)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/458062
|
|||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/159610
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/483039
|
||||
milestone: '17.5'
|
||||
group: group::static analysis
|
||||
group: group::security platform management
|
||||
type: beta
|
||||
default_enabled: true
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/458062
|
|||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157858
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/465776
|
||||
milestone: '17.2'
|
||||
group: group::static analysis
|
||||
group: group::security platform management
|
||||
type: beta
|
||||
default_enabled: true
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
---
|
||||
name: use_exclusive_lease_in_mvn_find_or_create_package
|
||||
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/424238
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170916
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/501019
|
||||
milestone: '17.6'
|
||||
group: group::package registry
|
||||
type: gitlab_com_derisk
|
||||
name: branch_rule_squash_settings
|
||||
feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/498701
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/173991
|
||||
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/506542
|
||||
milestone: '17.7'
|
||||
group: group::source code
|
||||
type: wip
|
||||
default_enabled: false
|
||||
|
|
@ -4,9 +4,7 @@ class AddHighestSeverityAndVulnerabilityCountIntoSbomOccurrences < Gitlab::Datab
|
|||
milestone '16.7'
|
||||
|
||||
def change
|
||||
add_column :sbom_occurrences, :highest_severity, :smallint, null: true # rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :sbom_occurrences, :highest_severity, :smallint, null: true
|
||||
add_column :sbom_occurrences, :vulnerability_count, :integer, null: false, default: 0
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -13,9 +13,7 @@ class CreateSbomSourcePackagesTable < Gitlab::Database::Migration[2.2]
|
|||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
with_lock_retries do
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :sbom_occurrences, :source_package_id, :bigint, if_not_exists: true
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
|
||||
create_table :sbom_source_packages, if_not_exists: true do |t|
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@ class AddIndexSentNotificationsOnIssueEmailParticipantId < Gitlab::Database::Mig
|
|||
|
||||
INDEX_NAME = 'index_sent_notifications_on_issue_email_participant_id'
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
add_concurrent_index :sent_notifications, :issue_email_participant_id, name: INDEX_NAME
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :sent_notifications, INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -5,8 +5,6 @@ class AddPartitionIdToPipelineConfig < Gitlab::Database::Migration[2.2]
|
|||
enable_lock_retries!
|
||||
|
||||
def change
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column(:ci_pipelines_config, :partition_id, :bigint, default: 100, null: false)
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,11 +4,7 @@ class AddArchivedAndTraversalIdsColumnsToSbomOccurrences < Gitlab::Database::Mig
|
|||
milestone '16.9'
|
||||
|
||||
def change
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :sbom_occurrences, :archived, :boolean, default: false, null: false
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :sbom_occurrences, :traversal_ids, 'bigint[]', default: [], null: false
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,9 +6,7 @@ class AddAncestorsColumnToSbomOccurrences < Gitlab::Database::Migration[2.2]
|
|||
enable_lock_retries!
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :sbom_occurrences, :ancestors, :jsonb, default: [], null: false
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -6,9 +6,7 @@ class AddFileFinalPathToPackagesPackageFiles < Gitlab::Database::Migration[2.2]
|
|||
|
||||
def up
|
||||
with_lock_retries do
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :packages_package_files, :file_final_path, :text, if_not_exists: true
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
|
||||
add_text_limit :packages_package_files, :file_final_path, 1024
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ class AddPartitionIdToCiPipelineMessage < Gitlab::Database::Migration[2.2]
|
|||
milestone '17.1'
|
||||
|
||||
def change
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column(:ci_pipeline_messages, :partition_id, :bigint, default: 100, null: false)
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -7,9 +7,7 @@ class AddAdvancedTokenScope < Gitlab::Database::Migration[2.2]
|
|||
|
||||
def up
|
||||
with_lock_retries do
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :personal_access_tokens, :advanced_scopes, :text, if_not_exists: true
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
|
||||
add_text_limit :personal_access_tokens, :advanced_scopes, 4096
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@ class AddAutoCanceledByPartitionIdToCiPipelines < Gitlab::Database::Migration[2.
|
|||
milestone '17.2'
|
||||
|
||||
def change
|
||||
add_column :ci_pipelines, :auto_canceled_by_partition_id, :bigint # rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :ci_pipelines, :auto_canceled_by_partition_id, :bigint
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ class AddProjectIdToPackagesPackageFiles < Gitlab::Database::Migration[2.2]
|
|||
milestone '17.3'
|
||||
|
||||
def change
|
||||
add_column :packages_package_files, :project_id, :bigint # rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :packages_package_files, :project_id, :bigint
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ class AddProjectIdToVulnerabilityOccurrencePipelines < Gitlab::Database::Migrati
|
|||
milestone '17.3'
|
||||
|
||||
def change
|
||||
add_column :vulnerability_occurrence_pipelines, :project_id, :bigint # rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :vulnerability_occurrence_pipelines, :project_id, :bigint
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,9 +4,7 @@ class AddProjectIdToMergeRequestDiffCommitsB5377a7a34 < Gitlab::Database::Migrat
|
|||
milestone '17.3'
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :merge_request_diff_commits_b5377a7a34, :project_id, :bigint
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ class AddProjectIdToMergeRequestDiffFiles99208b8fac < Gitlab::Database::Migratio
|
|||
milestone '17.3'
|
||||
|
||||
def up
|
||||
add_column :merge_request_diff_files_99208b8fac, :project_id, :bigint # rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :merge_request_diff_files_99208b8fac, :project_id, :bigint
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -9,9 +9,7 @@ class AddOrganizationIdToPersonalAccessTokens < Gitlab::Database::Migration[2.2]
|
|||
|
||||
def up
|
||||
with_lock_retries do
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :personal_access_tokens, :organization_id, :bigint, default: DEFAULT_ORGANIZATION_ID, null: false,
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
if_not_exists: true
|
||||
end
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ class AddReachabilityColumnToSbomOccurancesTable < Gitlab::Database::Migration[2
|
|||
milestone '17.4'
|
||||
def up
|
||||
with_lock_retries do
|
||||
add_column :sbom_occurrences, :reachability, :smallint, default: 0 # rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :sbom_occurrences, :reachability, :smallint, default: 0 # -- Legacy migration
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -4,15 +4,9 @@ class AddNotificationColsToPersonalAccessTokens < Gitlab::Database::Migration[2.
|
|||
milestone '17.4'
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :personal_access_tokens, :seven_days_notification_sent_at, :datetime_with_timezone
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :personal_access_tokens, :thirty_days_notification_sent_at, :datetime_with_timezone
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :personal_access_tokens, :sixty_days_notification_sent_at, :datetime_with_timezone
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ class AddProjectIdToCiPipelineMessages < Gitlab::Database::Migration[2.2]
|
|||
milestone '17.6'
|
||||
|
||||
def change
|
||||
add_column(:ci_pipeline_messages, :project_id, :bigint) # rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column(:ci_pipeline_messages, :project_id, :bigint)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -4,8 +4,6 @@ class AddAutoResolvedToVulnerabilities < Gitlab::Database::Migration[2.2]
|
|||
milestone '17.6'
|
||||
|
||||
def change
|
||||
# rubocop:disable Migration/PreventAddingColumns -- Legacy migration
|
||||
add_column :vulnerabilities, :auto_resolved, :boolean, null: false, default: false, if_not_exists: true
|
||||
# rubocop:enable Migration/PreventAddingColumns
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -6,11 +6,9 @@ class AddMergeRequestDiffsProjectIdIndexAsync < Gitlab::Database::Migration[2.2]
|
|||
|
||||
INDEX_NAME = 'index_merge_request_diffs_on_project_id'
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
prepare_async_index :merge_request_diffs, :project_id, name: INDEX_NAME
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
unprepare_async_index :merge_request_diffs, :project_id, name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -6,11 +6,9 @@ class AddMergeRequestDiffsProjectIdIndex < Gitlab::Database::Migration[2.2]
|
|||
|
||||
INDEX_NAME = 'index_merge_request_diffs_on_project_id'
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
add_concurrent_index :merge_request_diffs, :project_id, name: INDEX_NAME
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :merge_request_diffs, name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -6,11 +6,9 @@ class PrepareIidNamespaceUniqueIndexInIssues < Gitlab::Database::Migration[2.2]
|
|||
milestone '16.8'
|
||||
|
||||
# TODO: Index to be created synchronously in https://gitlab.com/gitlab-org/gitlab/-/issues/435856
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
prepare_async_index :issues, [:namespace_id, :iid], unique: true, name: INDEX_NAME
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
unprepare_async_index :issues, [:namespace_id, :iid], unique: true, name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@ class AddIidNamespaceUniqueIndexToIssues < Gitlab::Database::Migration[2.2]
|
|||
|
||||
milestone '16.8'
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
add_concurrent_index :issues, [:namespace_id, :iid], name: INDEX_NAME, unique: true
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :issues, INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -6,11 +6,9 @@ class ScheduleIndexToEventsAuthorGroupActionTargetTypeCreatedAt < Gitlab::Databa
|
|||
INDEX_NAME = 'index_events_author_id_group_id_action_target_type_created_at'
|
||||
COLUMNS = [:author_id, :group_id, :action, :target_type, :created_at]
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
prepare_async_index :events, COLUMNS, name: INDEX_NAME
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
unprepare_async_index :events, COLUMNS, name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ class AddIndexToCiJobArtifactStates < Gitlab::Database::Migration[2.2]
|
|||
TABLE_NAME = :ci_job_artifact_states
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index(TABLE_NAME, [:job_artifact_id, :partition_id], name: INDEX_NAME)
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -7,9 +7,7 @@ class AddIndexToCiBuildTraceMetadata < Gitlab::Database::Migration[2.2]
|
|||
TABLE_NAME = :ci_build_trace_metadata
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index(TABLE_NAME, [:trace_artifact_id, :partition_id], name: INDEX_NAME)
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -8,9 +8,7 @@ class AddIndexOwaspTop10WithProjectIdOnVulnerabilityReads < Gitlab::Database::Mi
|
|||
INDEX_NAME = 'index_vuln_reads_on_project_id_owasp_top_10'
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index :vulnerability_reads, [:project_id, :owasp_top_10], name: INDEX_NAME
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -8,11 +8,9 @@ class AddIndexToEventsAuthorGroupActionTargetType < Gitlab::Database::Migration[
|
|||
INDEX_NAME = 'index_events_author_id_group_id_action_target_type_created_at'
|
||||
COLUMNS = [:author_id, :group_id, :action, :target_type, :created_at]
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
add_concurrent_index :events, COLUMNS, name: INDEX_NAME
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :events, INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -6,11 +6,9 @@ class AddIndexOnIssuesTableTmpEpicIdColumn < Gitlab::Database::Migration[2.2]
|
|||
|
||||
INDEX_NAME = "tmp_index_issues_on_tmp_epic_id"
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
add_concurrent_index :issues, :tmp_epic_id, unique: true, name: INDEX_NAME
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :issues, name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -6,11 +6,9 @@ class ScheduleIndexMergeRequestsOnUnmergedStateId < Gitlab::Database::Migration[
|
|||
INDEX_NAME = :idx_merge_requests_on_unmerged_state_id
|
||||
TABLE_NAME = :merge_requests
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
prepare_async_index(TABLE_NAME, :id, name: INDEX_NAME, where: "state_id <> 3")
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
unprepare_async_index(TABLE_NAME, :id, name: INDEX_NAME)
|
||||
|
|
|
|||
|
|
@ -8,11 +8,9 @@ class AddIndexMergeRequestsOnUnmergedStateId < Gitlab::Database::Migration[2.2]
|
|||
INDEX_NAME = :idx_merge_requests_on_unmerged_state_id
|
||||
TABLE_NAME = :merge_requests
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
add_concurrent_index(TABLE_NAME, :id, name: INDEX_NAME, where: "state_id <> 3")
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name(TABLE_NAME, INDEX_NAME)
|
||||
|
|
|
|||
|
|
@ -8,9 +8,7 @@ class IndexVulnerabilityReadsOnStateReportTypeSeverityTraversalIdsArchived < Git
|
|||
COLUMNS = %i[resolved_on_default_branch state report_type severity traversal_ids vulnerability_id].freeze
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index :vulnerability_reads, COLUMNS, name: INDEX_NAME, where: 'archived = false'
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -8,9 +8,7 @@ class IndexVulnerabilityReadsForCommonGroupLevelQuery < Gitlab::Database::Migrat
|
|||
milestone '17.0'
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index :vulnerability_reads, COLUMNS, name: INDEX_NAME, where: 'archived = false'
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -6,11 +6,9 @@ class ReplaceIssuesMilestoneIndex < Gitlab::Database::Migration[2.2]
|
|||
INDEX_NAME = 'index_issues_on_milestone_id_and_id'
|
||||
|
||||
# TODO: Index to be created synchronously in https://gitlab.com/gitlab-org/gitlab/-/issues/461627
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
def up
|
||||
prepare_async_index :issues, %i[milestone_id id], name: INDEX_NAME
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
unprepare_async_index :issues, %i[milestone_id id], name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -7,11 +7,9 @@ class AddIssuesMilestoneAndIdIndexConcurrently < Gitlab::Database::Migration[2.2
|
|||
|
||||
disable_ddl_transaction!
|
||||
|
||||
# rubocop: disable Migration/PreventIndexCreation -- Replacing an existing index
|
||||
def up
|
||||
add_concurrent_index :issues, %i[milestone_id id], name: INDEX_NAME
|
||||
end
|
||||
# rubocop: enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name :issues, INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -7,14 +7,13 @@ class CreateIdxVulnerabilityOccurencesOnPrimIdenId < Gitlab::Database::Migration
|
|||
NEW_INDEX_NAME = 'index_vulnerability_occurrences_prim_iden_id_and_vuln_id'
|
||||
TABLE_NAME = :vulnerability_occurrences
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- This index was created async previously, check https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131647
|
||||
# -- This index was created async previously, check https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131647
|
||||
def up
|
||||
add_concurrent_index(
|
||||
TABLE_NAME, [:primary_identifier_id, :vulnerability_id],
|
||||
name: NEW_INDEX_NAME
|
||||
)
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
remove_concurrent_index_by_name TABLE_NAME, NEW_INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -6,13 +6,12 @@ class AddIndexOwaspTop10ForGroupLevelReports < Gitlab::Database::Migration[2.2]
|
|||
|
||||
INDEX_NAME = 'index_for_owasp_top_10_group_level_reports'
|
||||
|
||||
# -- Legacy migration
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index :vulnerability_reads, [:owasp_top_10, :state, :report_type,
|
||||
:severity, :traversal_ids, :vulnerability_id, :resolved_on_default_branch],
|
||||
where: 'archived = false',
|
||||
name: INDEX_NAME
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -11,10 +11,9 @@ class TmpIndexOnVulnerabilityReads < Gitlab::Database::Migration[2.2]
|
|||
INDEX_NAME = 'tmp_index_vulnerability_reads_where_state_is_detected'
|
||||
TABLE_NAME = :vulnerability_reads
|
||||
|
||||
# -- Legacy migration
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index TABLE_NAME, :id, name: INDEX_NAME, where: "state = 1"
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -6,10 +6,9 @@ class PrepareIndexVulnerabilityFindingLinksOnProjectId < Gitlab::Database::Migra
|
|||
|
||||
INDEX_NAME = 'index_vulnerability_finding_links_on_project_id'
|
||||
|
||||
# -- Legacy migration
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
prepare_async_index :vulnerability_finding_links, :project_id, name: INDEX_NAME
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -6,10 +6,9 @@ class PrepareIndexVulnerabilityOccurrencePipelinesOnProjectId < Gitlab::Database
|
|||
|
||||
INDEX_NAME = 'index_vulnerability_occurrence_pipelines_on_project_id'
|
||||
|
||||
# -- Legacy migration
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
prepare_async_index :vulnerability_occurrence_pipelines, :project_id, name: INDEX_NAME
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -8,10 +8,9 @@ class TmpIndexForOwaspOnVulnerabilityReads < Gitlab::Database::Migration[2.2]
|
|||
COLUMNS = %i[vulnerability_id].freeze
|
||||
WHERE_CLAUSE = 'owasp_top_10 IS NULL'
|
||||
|
||||
# -- Legacy migration
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index :vulnerability_reads, COLUMNS, name: INDEX_NAME, where: WHERE_CLAUSE
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -9,13 +9,12 @@ class AddRevisedIdxOwaspTop10ForGroupLevelReports < Gitlab::Database::Migration[
|
|||
|
||||
INDEX_NAME = 'revised_idx_for_owasp_top_10_group_level_reports'
|
||||
|
||||
# -- Legacy migration
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index :vulnerability_reads, [:owasp_top_10, :state, :report_type, :resolved_on_default_branch,
|
||||
:severity, :traversal_ids, :vulnerability_id],
|
||||
where: 'archived = false',
|
||||
name: INDEX_NAME
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -5,14 +5,13 @@ class AsyncAddIndexOnEventsPersonalNamespaceId2 < Gitlab::Database::Migration[2.
|
|||
|
||||
INDEX_NAME = 'index_events_on_personal_namespace_id'
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- https://gitlab.com/gitlab-org/gitlab/-/issues/462801#note_2081632603
|
||||
# -- https://gitlab.com/gitlab-org/gitlab/-/issues/462801#note_2081632603
|
||||
def up
|
||||
return unless Gitlab.com_except_jh?
|
||||
|
||||
prepare_async_index :events, :personal_namespace_id, name: INDEX_NAME,
|
||||
where: 'personal_namespace_id IS NOT NULL'
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
return unless Gitlab.com_except_jh?
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ class AddIndexOnEventsPersonalNamespaceIdSelfManaged < Gitlab::Database::Migrati
|
|||
|
||||
INDEX = 'index_events_on_personal_namespace_id'
|
||||
|
||||
# rubocop:disable Migration/PreventIndexCreation -- https://gitlab.com/gitlab-org/gitlab/-/issues/462801#note_2081632603
|
||||
# -- https://gitlab.com/gitlab-org/gitlab/-/issues/462801#note_2081632603
|
||||
def up
|
||||
return if Gitlab.com_except_jh?
|
||||
|
||||
|
|
@ -16,7 +16,6 @@ class AddIndexOnEventsPersonalNamespaceIdSelfManaged < Gitlab::Database::Migrati
|
|||
where: 'personal_namespace_id IS NOT NULL',
|
||||
name: INDEX
|
||||
end
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
|
||||
def down
|
||||
return if Gitlab.com_except_jh?
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ class PrepareIndexCiJobArtifactStatesOnProjectId < Gitlab::Database::Migration[2
|
|||
INDEX_NAME = 'index_ci_job_artifact_states_on_project_id'
|
||||
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
prepare_async_index :ci_job_artifact_states, :project_id, name: INDEX_NAME
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -7,10 +7,9 @@ class AddIndexOnVulnerabilityReadsForFilteredRemoval < Gitlab::Database::Migrati
|
|||
|
||||
milestone '17.5'
|
||||
|
||||
# -- Legacy migration
|
||||
def up
|
||||
# rubocop:disable Migration/PreventIndexCreation -- Legacy migration
|
||||
add_concurrent_index :vulnerability_reads, %i[project_id resolved_on_default_branch], name: INDEX_NAME
|
||||
# rubocop:enable Migration/PreventIndexCreation
|
||||
end
|
||||
|
||||
def down
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class PrepareAsyncIndexOnIssuesByProjectCorrectTypeWhereClosed < Gitlab::Databas
|
|||
def up
|
||||
# Temporary index to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/500165
|
||||
# TODO: Index to be created synchronously in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170005
|
||||
prepare_async_index :issues, # rubocop:disable Migration/PreventIndexCreation -- Tmp index needed to fix work item type ids
|
||||
prepare_async_index :issues, # -- Tmp index needed to fix work item type ids
|
||||
[:project_id, :correct_work_item_type_id, :closed_at],
|
||||
where: 'state_id = 2',
|
||||
name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class PrepareAsyncIndexOnIssuesProjectHealthIdDescStateCorrectType < Gitlab::Dat
|
|||
def up
|
||||
# Temporary index to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/500165
|
||||
# TODO: Index to be created synchronously in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170005
|
||||
prepare_async_index :issues, # rubocop:disable Migration/PreventIndexCreation -- Tmp index needed to fix work item type ids
|
||||
prepare_async_index :issues, # -- Tmp index needed to fix work item type ids
|
||||
[:project_id, :health_status, :id, :state_id, :correct_work_item_type_id],
|
||||
order: { health_status: 'DESC NULLS LAST', id: :desc },
|
||||
name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class PrepareAsyncIndexOnIssuesProjectHealthIdAscStateCorrectType < Gitlab::Data
|
|||
def up
|
||||
# Temporary index to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/500165
|
||||
# TODO: Index to be created synchronously in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170005
|
||||
prepare_async_index :issues, # rubocop:disable Migration/PreventIndexCreation -- Tmp index needed to fix work item type ids
|
||||
prepare_async_index :issues, # -- Tmp index needed to fix work item type ids
|
||||
[:project_id, :health_status, :id, :state_id, :correct_work_item_type_id],
|
||||
order: { health_status: 'ASC NULLS LAST', id: :desc },
|
||||
name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ class PrepareAsyncIndexOnIssuesCorrectTypeProjectCreatedAtState < Gitlab::Databa
|
|||
def up
|
||||
# Temporary index to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/500165
|
||||
# TODO: Index to be created synchronously in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/170005
|
||||
prepare_async_index :issues, # rubocop:disable Migration/PreventIndexCreation -- Tmp index needed to fix work item type ids
|
||||
prepare_async_index :issues, # -- Tmp index needed to fix work item type ids
|
||||
[:correct_work_item_type_id, :project_id, :created_at, :state_id],
|
||||
name: INDEX_NAME
|
||||
end
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class CreateTmpIndexOnIssuesByProjectCorrectTypeWhereClosed < Gitlab::Database::
|
|||
|
||||
def up
|
||||
# Temporary index to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/500165
|
||||
add_concurrent_index :issues, # rubocop:disable Migration/PreventIndexCreation -- Tmp index needed to fix work item type ids
|
||||
add_concurrent_index :issues, # -- Tmp index needed to fix work item type ids
|
||||
[:project_id, :correct_work_item_type_id, :closed_at],
|
||||
where: 'state_id = 2',
|
||||
name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class CreateTmpIndexOnIssuesProjectHealthIdDescStateCorrectType < Gitlab::Databa
|
|||
|
||||
def up
|
||||
# Temporary index to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/500165
|
||||
add_concurrent_index :issues, # rubocop:disable Migration/PreventIndexCreation -- Tmp index needed to fix work item type ids
|
||||
add_concurrent_index :issues, # -- Tmp index needed to fix work item type ids
|
||||
[:project_id, :health_status, :id, :state_id, :correct_work_item_type_id],
|
||||
order: { health_status: 'DESC NULLS LAST', id: :desc },
|
||||
name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class CreateTmpIndexOnIssuesProjectHealthIdAscStateCorrectType < Gitlab::Databas
|
|||
|
||||
def up
|
||||
# Temporary index to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/500165
|
||||
add_concurrent_index :issues, # rubocop:disable Migration/PreventIndexCreation -- Tmp index needed to fix work item type ids
|
||||
add_concurrent_index :issues, # -- Tmp index needed to fix work item type ids
|
||||
[:project_id, :health_status, :id, :state_id, :correct_work_item_type_id],
|
||||
order: { health_status: 'ASC NULLS LAST', id: :desc },
|
||||
name: INDEX_NAME
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ class CreateTmpIndexOnIssuesCorrectTypeProjectCreatedAtState < Gitlab::Database:
|
|||
|
||||
def up
|
||||
# Temporary index to be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/500165
|
||||
add_concurrent_index :issues, # rubocop:disable Migration/PreventIndexCreation -- Tmp index needed to fix work item type ids
|
||||
add_concurrent_index :issues, # -- Tmp index needed to fix work item type ids
|
||||
[:correct_work_item_type_id, :project_id, :created_at, :state_id],
|
||||
name: INDEX_NAME
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
# rubocop: disable Migration/PreventIndexCreation -- update an existing index
|
||||
# -- update an existing index
|
||||
class UpdateSentNotificationsIndexOnNoteable < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.6'
|
||||
|
||||
|
|
@ -22,4 +22,3 @@ class UpdateSentNotificationsIndexOnNoteable < Gitlab::Database::Migration[2.2]
|
|||
unprepare_async_index :sent_notifications, COLUMN_NAMES, name: INDEX_NAME
|
||||
end
|
||||
end
|
||||
# rubocop: enable Migration/PreventIndexCreation
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class RemovePushTablesForcePushDeleteBranchRegex < Gitlab::Database::Migration[2.2]
|
||||
milestone '17.7'
|
||||
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
remove_column :push_rules, :force_push_regex, if_exists: true
|
||||
remove_column :push_rules, :delete_branch_regex, if_exists: true
|
||||
end
|
||||
|
||||
def down
|
||||
add_column :push_rules, :force_push_regex, :string, if_not_exists: true
|
||||
add_column :push_rules, :delete_branch_regex, :string, if_not_exists: true
|
||||
|
||||
# Re-add constraints
|
||||
add_check_constraint(:push_rules, 'char_length(force_push_regex) <= 511', 'force_push_regex_size_constraint')
|
||||
add_check_constraint(:push_rules, 'char_length(delete_branch_regex) <= 511', 'delete_branch_regex_size_constraint')
|
||||
end
|
||||
end
|
||||
|
|
@ -0,0 +1 @@
|
|||
d601bb020ed7764440919cacaac775c1b6c492df5fc8218ff4d7a791a0128615
|
||||
|
|
@ -18563,8 +18563,6 @@ CREATE TABLE push_event_payloads (
|
|||
|
||||
CREATE TABLE push_rules (
|
||||
id bigint NOT NULL,
|
||||
force_push_regex character varying,
|
||||
delete_branch_regex character varying,
|
||||
commit_message_regex character varying,
|
||||
deny_delete_tag boolean,
|
||||
project_id bigint,
|
||||
|
|
@ -18588,9 +18586,7 @@ CREATE TABLE push_rules (
|
|||
CONSTRAINT branch_name_regex_size_constraint CHECK ((char_length((branch_name_regex)::text) <= 511)),
|
||||
CONSTRAINT commit_message_negative_regex_size_constraint CHECK ((char_length((commit_message_negative_regex)::text) <= 2047)),
|
||||
CONSTRAINT commit_message_regex_size_constraint CHECK ((char_length((commit_message_regex)::text) <= 511)),
|
||||
CONSTRAINT delete_branch_regex_size_constraint CHECK ((char_length((delete_branch_regex)::text) <= 511)),
|
||||
CONSTRAINT file_name_regex_size_constraint CHECK ((char_length((file_name_regex)::text) <= 511)),
|
||||
CONSTRAINT force_push_regex_size_constraint CHECK ((char_length((force_push_regex)::text) <= 511))
|
||||
CONSTRAINT file_name_regex_size_constraint CHECK ((char_length((file_name_regex)::text) <= 511))
|
||||
);
|
||||
|
||||
CREATE SEQUENCE push_rules_id_seq
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ DETAILS:
|
|||
> - [Feed tokens added](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169821) in GitLab 17.6.
|
||||
> - [OAuth application secrets added](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/172985) in GitLab 17.7.
|
||||
> - [Cluster agent tokens added](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/172932) in GitLab 17.7.
|
||||
> - [Runner authentication tokens added](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/173987) in GitLab 17.7.
|
||||
|
||||
FLAG:
|
||||
The availability of this feature is controlled by a feature flag.
|
||||
|
|
@ -30,7 +31,7 @@ Prerequisites:
|
|||
|
||||
- You must be an administrator.
|
||||
|
||||
## Get Token Information
|
||||
## Identify Token
|
||||
|
||||
Returns information about a token.
|
||||
|
||||
|
|
@ -41,6 +42,7 @@ Supported tokens:
|
|||
- [Feed tokens](../../security/tokens/index.md#feed-token)
|
||||
- [OAuth application secrets](../../integration/oauth_provider.md)
|
||||
- [Cluster agent tokens](../../security/tokens/index.md#gitlab-cluster-agent-tokens)
|
||||
- [Runner authentication tokens](../../security/tokens/index.md#runner-authentication-tokens)
|
||||
|
||||
```plaintext
|
||||
POST /api/v4/admin/token
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ info: >-
|
|||
this page, see
|
||||
https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
|
||||
---
|
||||
# Provisioning runners in Google Cloud
|
||||
# Provision runners in Google Cloud Compute Engine
|
||||
|
||||
DETAILS:
|
||||
**Tier:** Free, Premium, Ultimate
|
||||
|
|
@ -15,86 +15,53 @@ DETAILS:
|
|||
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/438316) in GitLab 16.10 [with a flag](../../administration/feature_flags.md) named `google_cloud_support_feature_flag`. This feature is in [beta](../../policy/development_stages_support.md).
|
||||
> - [Enabled on GitLab.com](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150472) in GitLab 17.1. Feature flag `google_cloud_support_feature_flag` removed.
|
||||
|
||||
## Creating a runner provisioned in Google Cloud
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- You must have [billing enabled](https://cloud.google.com/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project)
|
||||
for your Google Cloud project.
|
||||
- You must have a working [`gcloud` CLI tool](https://cloud.google.com/sdk/docs/install) that is authenticated with the
|
||||
[Owner](https://cloud.google.com/iam/docs/understanding-roles#owner) IAM role on the Google Cloud project.
|
||||
- You must have the [Terraform CLI tool](https://developer.hashicorp.com/terraform/install) installed.
|
||||
|
||||
You can create a project or group runner for GitLab.com and provision it on your Google Cloud project.
|
||||
When you create a runner, the GitLab UI provides on-screen instructions and scripts to automatically provision the runner
|
||||
in a Google Cloud project that you own.
|
||||
in your Google Cloud project.
|
||||
|
||||
After you create a runner, it is assigned a runner authentication token that a Terraform script uses to register it.
|
||||
The runner uses the token to authenticate with GitLab when picking up jobs from the job queue.
|
||||
A runner authentication token is assigned to your runner when you create it. A [GRIT](https://gitlab.com/gitlab-org/ci-cd/runner-tools/grit) Terraform script uses this token to
|
||||
register the runner. The runner then uses the token to authenticate with GitLab when it picks up jobs
|
||||
from the job queue.
|
||||
|
||||
After the runners are provisioned, an autoscaling fleet of runners is available to execute your CI/CD jobs
|
||||
in Google Cloud.
|
||||
A runner manager automatically creates temporary runners.
|
||||
|
||||
### Create a group runner
|
||||
After provisioning, an autoscaling fleet of runners is ready to run CI/CD jobs in Google Cloud.
|
||||
The runner manager creates temporary runners automatically.
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- You must have the Owner role for the group.
|
||||
- For group runners: Owner role for the group.
|
||||
- For project runners: Maintainer role for the project.
|
||||
- For your Google Cloud Platform project: [Owner](https://cloud.google.com/iam/docs/understanding-roles#owner) IAM role.
|
||||
- [Billing enabled](https://cloud.google.com/billing/docs/how-to/verify-billing-enabled#confirm_billing_is_enabled_on_a_project)
|
||||
for your Google Cloud Platform project.
|
||||
- A working [`gcloud` CLI tool](https://cloud.google.com/sdk/docs/install) authenticated with the
|
||||
IAM role on the Google Cloud project.
|
||||
- [Terraform v1.5 or later](https://releases.hashicorp.com/terraform/1.5.7/) and [Terraform CLI tool](https://developer.hashicorp.com/terraform/install).
|
||||
- A terminal with Bash installed.
|
||||
|
||||
To create a group runner and provision it on Google Cloud:
|
||||
To create a group or project runner and provision it on Google Cloud:
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
1. Select **Build > Runners**.
|
||||
1. Select **New group runner**.
|
||||
1. Create a new runner.
|
||||
- To create a new group runner, select **Build > Runners > New group runner**.
|
||||
- To create a new project runner, select **Settings > CI/CD > Runners > New project runner**.
|
||||
1. In the **Tags** section, in the **Tags** field, enter the job tags to specify jobs the runner can run.
|
||||
If there are no job tags for this runner, select **Run untagged**.
|
||||
1. Optional. In the **Runner description** field, add a runner description
|
||||
that displays in GitLab.
|
||||
1. Optional. In the **Configuration** section, add additional configurations.
|
||||
To use the runner for jobs without tags in addition to the tagged jobs, select **Run untagged**.
|
||||
1. Optional. In the **Configuration** section, add runner description and additional configurations.
|
||||
1. Select **Create runner**.
|
||||
1. In the **Platform** section, select **Google Cloud**.
|
||||
1. To specify the environment in Google Cloud where
|
||||
runners execute jobs, in **Step 1: Specify environment**, complete the form.
|
||||
1. In **Step 2: Set up GitLab Runner**, select **Setup instructions**. In the dialog:
|
||||
1. In **Environment**, enter the following details of the Google Cloud environment:
|
||||
|
||||
- **Step 1: Configure Google Cloud project** must be executed once per Google Cloud project,
|
||||
to ensure it meets the prerequisites for the required services, service account, and permissions.
|
||||
- **Step 2: Install and register GitLab Runner** displays the Terraform script that uses the
|
||||
[GitLab Runner Infrastructure Toolkit](https://gitlab.com/gitlab-org/ci-cd/runner-tools/grit/-/blob/main/docs/scenarios/google/linux/docker-autoscaler-default/index.md)
|
||||
(GRIT) to provision the infrastructure on the Google Cloud project to execute your runner manager.
|
||||
|
||||
After you execute the scripts, a runner manager connects with the runner authentication token. The runner manager might
|
||||
take up to one minute to show as online and start receiving jobs.
|
||||
|
||||
### Create a project runner
|
||||
|
||||
Prerequisites:
|
||||
|
||||
- You must have the Maintainer role for the project.
|
||||
|
||||
To create a project runner and provision it on Google Cloud:
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your project.
|
||||
1. Select **Settings > CI/CD**.
|
||||
1. Expand the **Runners** section.
|
||||
1. Select **New project runner**.
|
||||
1. In the **Tags** section, in the **Tags** field, enter the job tags to specify jobs the runner can run.
|
||||
If there are no job tags for this runner, select **Run untagged**.
|
||||
1. Optional. In the **Runner description** field, add a description for the runner
|
||||
that displays in GitLab.
|
||||
1. Optional. In the **Configuration** section, add additional configurations.
|
||||
1. Select **Create runner**.
|
||||
1. In the **Platform** section, select **Google Cloud**.
|
||||
1. To specify the environment in Google Cloud where
|
||||
runners execute jobs, in **Step 1: Specify environment**, complete the form.
|
||||
1. In **Step 2: Set up GitLab Runner**, select **Setup instructions**. In the dialog:
|
||||
|
||||
- **Step 1: Configure Google Cloud project** must be executed once per Google Cloud project,
|
||||
to ensure it meets the prerequisites for the required services, service account, and permissions.
|
||||
- **Step 2: Install and register GitLab Runner** displays the Terraform script that uses the
|
||||
[GitLab Runner Infrastructure Toolkit](https://gitlab.com/gitlab-org/ci-cd/runner-tools/grit/-/blob/main/docs/scenarios/google/linux/docker-autoscaler-default/index.md) (GRIT)
|
||||
to provision the infrastructure on the Google Cloud project to execute your runner manager.
|
||||
- **Google Cloud project ID**
|
||||
- **Region**
|
||||
- **Zone**
|
||||
- **Machine type**
|
||||
|
||||
1. In **Set up GitLab Runner**, select **Setup instructions**. In the dialog:
|
||||
|
||||
1. To enable the required services, service account, and permissions, in **Configure Google Cloud project** run the Bash script once for each Google Cloud project.
|
||||
1. Create a `main.tf` file with the configuration from **Install and register GitLab Runner**.
|
||||
The script uses the [GitLab Runner Infrastructure Toolkit](https://gitlab.com/gitlab-org/ci-cd/runner-tools/grit/-/blob/main/docs/scenarios/google/linux/docker-autoscaler-default/index.md)
|
||||
(GRIT) to provision the infrastructure on the Google Cloud project to execute your runner manager.
|
||||
|
||||
After you execute the scripts, a runner manager connects with the runner authentication token. The runner manager might
|
||||
take up to one minute to show as online and start receiving jobs.
|
||||
|
|
|
|||
|
|
@ -29,6 +29,15 @@ Exceptions to these size limitations should only granted for the following cases
|
|||
- Modify a table to assist in partitioning or data retention efforts
|
||||
- Replace an existing index to provide better query performance
|
||||
|
||||
### Requesting an exception
|
||||
|
||||
To request an exception to these limitations:
|
||||
|
||||
1. Create a new issue using the [Database Team Tasks template](https://gitlab.com/gitlab-org/database-team/team-tasks/-/issues/new)
|
||||
1. Select the `schema_change_exception` template
|
||||
1. Provide detailed justification for why your case requires an exception
|
||||
1. Wait for review and approval from the Database team before proceeding
|
||||
|
||||
## Alternatives to table modifications
|
||||
|
||||
Consider these alternatives when working with large tables:
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ is inside `_()` so it can be translated:
|
|||
the rest of the page layout:
|
||||
|
||||
```haml
|
||||
= render Pajamas::ButtonComponent.new(variant: :default, href: help_page_path('user/group/import/index.md'), target: '_blank') do
|
||||
= render Pajamas::ButtonComponent.new(href: help_page_path('user/group/import/index.md'), target: '_blank') do
|
||||
= _('Learn more')
|
||||
```
|
||||
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 26 KiB |
|
|
@ -7,144 +7,63 @@ description: Learn how documentation review apps work.
|
|||
|
||||
# Documentation review apps
|
||||
|
||||
If you're a GitLab team member and your merge request contains documentation changes, you can use a review app to preview
|
||||
how they would look if they were deployed to the [GitLab Docs site](https://docs.gitlab.com).
|
||||
GitLab team members can deploy a [review app](../../ci/review_apps/index.md) for merge requests with documentation
|
||||
changes. The review app helps you preview what the changes would look like if they were deployed to either:
|
||||
|
||||
Review apps are enabled for the following projects:
|
||||
- The [GitLab Docs site](https://docs.gitlab.com).
|
||||
- The [new GitLab Docs site](https://new.docs.gitlab.com). The site is still in development.
|
||||
|
||||
- [GitLab](https://gitlab.com/gitlab-org/gitlab)
|
||||
- [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab)
|
||||
- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner)
|
||||
- [GitLab Charts](https://gitlab.com/gitlab-org/charts/gitlab)
|
||||
- [GitLab Operator](https://gitlab.com/gitlab-org/cloud-native/gitlab-operator)
|
||||
Review apps deployments are available for these projects:
|
||||
|
||||
Alternatively, check the [`gitlab-docs` development guide](https://gitlab.com/gitlab-org/gitlab-docs/blob/main/README.md#development-when-contributing-to-gitlab-documentation)
|
||||
or [the GDK documentation](https://gitlab.com/gitlab-org/gitlab-development-kit/blob/main/doc/howto/gitlab_docs.md)
|
||||
to render and preview the documentation locally.
|
||||
- [GitLab](https://gitlab.com/gitlab-org/gitlab) (configuration: <https://gitlab.com/gitlab-org/gitlab/-/blob/b4f30955e41aeab862c59f7102529e1a5a2659d1/.gitlab/ci/docs.gitlab-ci.yml#L1-40>)
|
||||
- [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab) (configuration: <https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/bae935d36ea9296941c20233b637d780847c443a/gitlab-ci-config/gitlab-com.yml#L304-328>)
|
||||
- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner) (configuration: <https://gitlab.com/gitlab-org/gitlab-runner/-/blob/69d2416333df4712cbd95d90214b10f100183df3/.gitlab/ci/docs.gitlab-ci.yml#L64-110>)
|
||||
- [GitLab Charts](https://gitlab.com/gitlab-org/charts/gitlab) (configuration: <https://gitlab.com/gitlab-org/charts/gitlab/-/blob/8222a7c3cf28d8ad3f454784a04cad8921b6638b/.gitlab/ci/review-docs.yml#L2-49>)
|
||||
- [GitLab Operator](https://gitlab.com/gitlab-org/cloud-native/gitlab-operator) (configuration: <https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/-/blob/56200465a5c8f8857f3aef2c309bdf2ca9e4b672/.gitlab-ci.yml#L210-257>)
|
||||
|
||||
## How to trigger a review app
|
||||
## Deploy a review app and preview changes
|
||||
|
||||
If a merge request has documentation changes, use the `review-docs-deploy` manual job
|
||||
to deploy the documentation review app for your merge request.
|
||||
Prerequisites:
|
||||
|
||||

|
||||
- You must have the Developer role for the project. External contributors cannot run these jobs and
|
||||
should ask a GitLab team member to run the jobs for them.
|
||||
|
||||
The `review-docs-deploy*` job triggers a cross project pipeline and builds the
|
||||
docs site with your changes. When the pipeline finishes, the review app URL
|
||||
appears in the merge request widget. Use the app to go to your changes.
|
||||
Merge requests with documentation changes have the following jobs available:
|
||||
|
||||
The `review-docs-cleanup` job is triggered automatically on merge. This job deletes the review app.
|
||||
- `review-docs-deploy`, which uses Nanoc static-site generation using
|
||||
[`gitlab-docs`](https://gitlab.com/gitlab-org/gitlab-docs).
|
||||
- `review-docs-hugo-deploy`: Optional. This review app is only for testing the Hugo static site generation from
|
||||
[`gitlab-docs-hugo`](https://gitlab.com/gitlab-org/technical-writing-group/gitlab-docs-hugo),
|
||||
which is still in development.
|
||||
|
||||
You must have the Developer role for the project. Users without the Developer role, such
|
||||
as external contributors, cannot run the manual job. In that case, ask someone from
|
||||
the GitLab team to run the job.
|
||||
To deploy a review app and preview changes:
|
||||
|
||||
## Technical aspects
|
||||
1. [Manually run](../../ci/jobs/job_control.md#run-a-manual-job) either (or both) of these jobs. These jobs trigger a
|
||||
[multi project pipelines](../../ci/pipelines/downstream_pipelines.md#multi-project-pipelines), build the
|
||||
documentation site with your changes, and deploy a site with your changes.
|
||||
1. When the pipeline finishes, select **View app** on either deployment to open a browser and review the
|
||||
changes introduced by the merge request.
|
||||
|
||||
If you want to know the in-depth details, here's what's really happening:
|
||||
The `review-docs-cleanup` and `review-docs-hugo-cleanup` jobs are triggered automatically on merge. These job delete
|
||||
the review app.
|
||||
|
||||
1. You manually run the `review-docs-deploy` job in a merge request.
|
||||
1. The job downloads and runs the [`scripts/trigger-build.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/scripts/trigger-build.rb)
|
||||
script with the `docs deploy` flag, which triggers the "Triggered from `gitlab-org/gitlab` 'review-docs-deploy' job"
|
||||
pipeline trigger in the `gitlab-org/gitlab-docs` project for the `$DOCS_BRANCH` (defaults to `main`).
|
||||
1. The preview URL is shown both at the job output and in the merge request
|
||||
widget. You also get the link to the remote pipeline.
|
||||
1. In the `gitlab-org/gitlab-docs` project, the pipeline is created and it
|
||||
[skips most test jobs](https://gitlab.com/gitlab-org/gitlab-docs/-/blob/d41ca9323f762132780d2d072f845d28817a5383/.gitlab/ci/rules.gitlab-ci.yml#L101-103)
|
||||
to lower the build time.
|
||||
1. After the docs site is built, the HTML files are uploaded as artifacts to
|
||||
a GCP bucket (see [issue `gitlab-com/gl-infra/reliability#11021`](https://gitlab.com/gitlab-com/gl-infra/reliability/-/issues/11021)
|
||||
for the implementation details).
|
||||
## How documentation review apps work
|
||||
|
||||
The following GitLab features are used among others:
|
||||
Documentation review apps follow this process:
|
||||
|
||||
- [Manual jobs](../../ci/jobs/job_control.md#create-a-job-that-must-be-run-manually)
|
||||
- [Multi project pipelines](../../ci/pipelines/downstream_pipelines.md#multi-project-pipelines)
|
||||
- [Review apps](../../ci/review_apps/index.md)
|
||||
- [Artifacts](../../ci/yaml/index.md#artifacts)
|
||||
- [Merge request pipelines](../../ci/pipelines/merge_request_pipelines.md)
|
||||
1. You manually run the `review-docs-deploy` or `review-docs-hugo-deploy` job in a merge request.
|
||||
1. The job downloads (if outside of `gitlab` project) and runs the
|
||||
[`scripts/trigger-build.rb`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/scripts/trigger-build.rb) script with
|
||||
either:
|
||||
|
||||
## How to add a new documentation review app
|
||||
- The `docs deploy` flag, which triggers a pipeline in the `gitlab-org/gitlab-docs` project.
|
||||
- The `docs-hugo deploy` flag, which triggers a pipeline in the `gitlab-org/technical-writing-group/gitlab-docs-hugo`
|
||||
project.
|
||||
|
||||
In case a documentation review app is missing from one of the documentation
|
||||
projects, you can use the following CI/CD template to add a manually triggered review app:
|
||||
|
||||
```yaml
|
||||
# Set up documentation review apps
|
||||
# https://docs.gitlab.com/ee/development/documentation/review_apps.html
|
||||
.review-docs:
|
||||
image: ruby:3.1-alpine
|
||||
needs: []
|
||||
before_script:
|
||||
- gem install gitlab --no-doc
|
||||
# We need to download the script rather than clone the repo since the
|
||||
# review-docs-cleanup job will not be able to run when the branch gets
|
||||
# deleted (when merging the MR).
|
||||
- apk add --update openssl
|
||||
- wget https://gitlab.com/gitlab-org/gitlab/-/raw/master/scripts/trigger-build.rb
|
||||
- chmod 755 trigger-build.rb
|
||||
variables:
|
||||
GIT_STRATEGY: none
|
||||
DOCS_REVIEW_APPS_DOMAIN: docs.gitlab-review.app
|
||||
# By default, deploy the Review App using the `main` branch of the `gitlab-org/gitlab-docs` project
|
||||
DOCS_BRANCH: main
|
||||
when: manual
|
||||
allow_failure: true
|
||||
|
||||
# Trigger a docs build in gitlab-docs
|
||||
# Useful to preview the docs changes live
|
||||
# https://docs.gitlab.com/ee/development/documentation/index.html#previewing-the-changes-live
|
||||
review-docs-deploy:
|
||||
extends:
|
||||
- .review-docs
|
||||
environment:
|
||||
name: review-docs/mr-${CI_MERGE_REQUEST_IID}
|
||||
# DOCS_REVIEW_APPS_DOMAIN and DOCS_GITLAB_REPO_SUFFIX are CI variables
|
||||
# Discussion: https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/14236/diffs#note_40140693
|
||||
auto_stop_in: 2 weeks
|
||||
url: https://${DOCS_BRANCH}-${DOCS_GITLAB_REPO_SUFFIX}-${CI_MERGE_REQUEST_IID}.${DOCS_REVIEW_APPS_DOMAIN}/${DOCS_GITLAB_REPO_SUFFIX}
|
||||
on_stop: review-docs-cleanup
|
||||
script:
|
||||
- ./trigger-build.rb docs deploy
|
||||
|
||||
# Cleanup remote environment of gitlab-docs
|
||||
review-docs-cleanup:
|
||||
extends:
|
||||
- .review-docs
|
||||
environment:
|
||||
name: review-docs/mr-${CI_MERGE_REQUEST_IID}
|
||||
action: stop
|
||||
script:
|
||||
- ./trigger-build.rb docs cleanup
|
||||
```
|
||||
|
||||
You may need to add some rules when those jobs run, it depends on the project.
|
||||
You can find the current implementations:
|
||||
|
||||
- [GitLab](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/ci/docs.gitlab-ci.yml)
|
||||
- [Omnibus GitLab](https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/ee8699658c8a7d4c635ad503ef0b825ac592dc4b/gitlab-ci-config/gitlab-com.yml#L367-391)
|
||||
- [GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/-/blob/main/.gitlab/ci/docs.gitlab-ci.yml)
|
||||
- [GitLab Charts](https://gitlab.com/gitlab-org/charts/gitlab/-/blob/aae7ee8d23a60d6025eec7d1a864ce244f21cd85/.gitlab-ci.yml#L629-679)
|
||||
- [GitLab Operator](https://gitlab.com/gitlab-org/cloud-native/gitlab-operator/-/blob/5fa29607cf9286b510148a8f5fef7595dca34186/.gitlab-ci.yml#L180-228)
|
||||
|
||||
## Troubleshooting review apps
|
||||
|
||||
### `NoSuchKey The specified key does not exist`
|
||||
|
||||
If you see the following message in a review app, either the site is not
|
||||
yet deployed, or something went wrong with the downstream pipeline in `gitlab-docs`.
|
||||
|
||||
```plaintext
|
||||
NoSuchKeyThe specified key does not exist.No such object: <URL>
|
||||
```
|
||||
|
||||
In that case, you can:
|
||||
|
||||
- Wait a few minutes and the review app should appear online.
|
||||
- Check the `review-docs-deploy` job's log and verify the URL. If the URL shown in the merge
|
||||
request UI is different than the job log, try the one from the job log.
|
||||
- Check the status of the remote pipeline from the link in the merge request's job output.
|
||||
If the pipeline failed or got stuck, GitLab team members can ask for help in the `#docs`
|
||||
internal Slack channel. Contributors can ping a
|
||||
[technical writer](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments-to-devops-stages-and-groups)
|
||||
in the merge request.
|
||||
The `DOCS_BRANCH` environment variable determines which branch of either the `gitlab-org/gitlab-docs` project or the
|
||||
`gitlab-org/technical-writing-group/gitlab-docs-hugo` project are used. If not set, the `main` branch is used.
|
||||
1. After the documentation preview site is built:
|
||||
- For `nanoc` builds, the HTML files are uploaded as [artifacts](../../ci/yaml/index.md#artifacts) to a GCP bucket.
|
||||
For implementation details, see
|
||||
[issue `gitlab-com/gl-infra/reliability#11021`](https://gitlab.com/gitlab-com/gl-infra/reliability/-/issues/11021).
|
||||
- For `hugo` builds, a [parallel deployment](../../user/project/pages/index.md#parallel-deployments) is deployed.
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ For status, choose one:
|
|||
|
||||
- `Beta`
|
||||
- `Experiment`
|
||||
- `Limited availability`
|
||||
|
||||
Generally available features should not have a status.
|
||||
|
||||
|
|
@ -129,7 +130,14 @@ For a feature status change from experiment to beta, use `changed`:
|
|||
|
||||
```markdown
|
||||
> - [Introduced](https://issue-link) as an [experiment](../../policy/development_stages_support.md) in GitLab 15.7.
|
||||
> - [Changed](https://issue-link) to beta in GitLab 16.0.
|
||||
> - [Changed](https://issue-link) from experiment to beta in GitLab 16.0.
|
||||
```
|
||||
|
||||
For a feature status change from beta to limited availability, use `changed`:
|
||||
|
||||
```markdown
|
||||
> - [Changed](https://issue-link) from experiment to beta in GitLab 16.0.
|
||||
> - [Changed](https://issue-link) from beta to limited availability in GitLab 16.3.
|
||||
```
|
||||
|
||||
For a change to generally available, use:
|
||||
|
|
|
|||
|
|
@ -1029,6 +1029,15 @@ To open group settings:
|
|||
1. Expand **General pipelines**.
|
||||
```
|
||||
|
||||
To open settings for a top-level group:
|
||||
|
||||
```markdown
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
This group must be at the top level.
|
||||
1. Select **Settings > CI/CD**.
|
||||
1. Expand **General pipelines**.
|
||||
```
|
||||
|
||||
To open either project or group settings:
|
||||
|
||||
```markdown
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ info: Any user with at least the Maintainer role can merge updates to this conte
|
|||
Geo connects GitLab instances together. One GitLab instance is
|
||||
designated as a **primary** site and can be run with multiple
|
||||
**secondary** sites. Geo orchestrates quite a few components that can be seen on
|
||||
the diagram below and are described in more detail within this document.
|
||||
the diagram below and are described in more detail in this document.
|
||||
|
||||

|
||||
|
||||
|
|
|
|||
|
|
@ -183,7 +183,8 @@ DETAILS:
|
|||
|
||||
To enable or disable the overview count aggregation for the Value Streams Dashboard:
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your top-level group.
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
This group must be at the top level.
|
||||
1. Select **Settings > Analytics**.
|
||||
1. In **Value Streams Dashboard**, select or clear the **Enable overview background aggregation for Value Streams Dashboard** checkbox.
|
||||
|
||||
|
|
|
|||
|
|
@ -107,7 +107,8 @@ For more information on group-level domain verification, see [epic 5299](https:/
|
|||
|
||||
The custom domain must match the email domain exactly. For example, if your email is `username@example.com`, verify the `example.com` domain.
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your top-level group.
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
This group must be at the top level.
|
||||
1. Select **Settings > Domain Verification**.
|
||||
1. In the upper-right corner, select **Add Domain**.
|
||||
1. In **Domain**, enter the domain name.
|
||||
|
|
@ -153,7 +154,8 @@ For GitLab instances with domain verification enabled, if the domain cannot be v
|
|||
|
||||
To view all configured domains in your group:
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your top-level group.
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
This group must be at the top level.
|
||||
1. Select **Settings > Domain Verification**.
|
||||
|
||||
You then see:
|
||||
|
|
@ -166,7 +168,8 @@ You then see:
|
|||
|
||||
To edit or remove a domain:
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your top-level group.
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
This group must be at the top level.
|
||||
1. Select **Settings > Domain Verification**.
|
||||
1. When viewing **Domain Verification**, select the project listed next to the relevant domain.
|
||||
1. Edit or remove a domain following the relevant [GitLab Pages custom domains](../project/pages/custom_domains_ssl_tls_certification/index.md) instructions.
|
||||
|
|
|
|||
|
|
@ -193,11 +193,11 @@ After GitLab Duo Chat opens:
|
|||
1. To send your question, press **Enter** or select **Send**.
|
||||
1. Use the buttons within code blocks in the responses to interact with them.
|
||||
|
||||
### In the editor window
|
||||
### In GitLab Duo Quick Chat in the editor view
|
||||
|
||||
> - Introduced as [generally available](https://gitlab.com/groups/gitlab-org/editor-extensions/-/epics/80) in GitLab Duo 3.0.0.
|
||||
> - Introduced as generally available in the [GitLab Duo plugin for JetBrains 3.0.0](https://gitlab.com/groups/gitlab-org/editor-extensions/-/epics/80) and [GitLab Workflow extension for VS Code 5.14.0](https://gitlab.com/groups/gitlab-org/-/epics/15218).
|
||||
|
||||
To open GitLab Duo Chat in the editor window, use any of these methods:
|
||||
To open GitLab Duo Chat Quick Chat in the editor window, use any of these methods:
|
||||
|
||||
- From a keyboard shortcut, by pressing:
|
||||
- MacOS: <kbd>Option</kbd> + <kbd>c</kbd>
|
||||
|
|
@ -215,6 +215,14 @@ After Quick Chat opens:
|
|||
1. Use the buttons around code blocks in the responses to interact with them.
|
||||
1. To exit chat, either select **Escape to close**, or press **Escape** while focused on the chat.
|
||||
|
||||
<div class="video-fallback">
|
||||
<a href="https://youtu.be/5JbAM5g2VbQ">View how to use GitLab Duo Quick Chat</a>.
|
||||
</div>
|
||||
<figure class="video-container">
|
||||
<iframe src="https://www.youtube.com/embed/5JbAM5g2VbQ?si=pm7bTRDCR5we_1IX" frameborder="0" allowfullscreen> </iframe>
|
||||
</figure>
|
||||
<!-- Video published on 2024-10-15 -->
|
||||
|
||||
## Watch a demo and get tips
|
||||
|
||||
<div class="video-fallback">
|
||||
|
|
@ -223,6 +231,7 @@ After Quick Chat opens:
|
|||
<figure class="video-container">
|
||||
<iframe src="https://www.youtube-nocookie.com/embed/l6vsd1HMaYA?si=etXpFbj1cBvWyj3_" frameborder="0" allowfullscreen> </iframe>
|
||||
</figure>
|
||||
<!-- Video published on 2023-11-10 -->
|
||||
|
||||
For tips and tricks about integrating GitLab Duo Chat into your AI-powered DevSecOps workflows,
|
||||
read the blog post:
|
||||
|
|
|
|||
|
|
@ -213,6 +213,14 @@ You might get an error that states
|
|||
This is a fallback error that occurs when there is a problem with GitLab Duo Chat.
|
||||
Please try a more specific request, enter `/clear` to start a new chat, or leave feedback to help us improve.
|
||||
|
||||
## `Error G3001`
|
||||
|
||||
You might get an error that states
|
||||
`I'm sorry, but answering this question requires a different Duo subscription. Please contact your administrator.`.
|
||||
|
||||
This error occurs when GitLab Duo Chat is not available in your subscription.
|
||||
Try a different request and contact your administrator.
|
||||
|
||||
## Header mismatch issue
|
||||
|
||||
You might get an error that states `I'm sorry, I can't generate a response. Please try again`, without a specific error code.
|
||||
|
|
|
|||
|
|
@ -21,10 +21,6 @@ You can migrate GitLab groups:
|
|||
- From one self-managed GitLab instance to another.
|
||||
- Between groups in the same GitLab instance.
|
||||
|
||||
WARNING:
|
||||
Migrating GitLab.com groups and projects by using direct transfer is [unavailable](https://status.gitlab.com).
|
||||
For more information, contact [GitLab Support](https://about.gitlab.com/support/).
|
||||
|
||||
Migration by direct transfer creates a new copy of the group. If you want to move groups instead of copying groups, you
|
||||
can [transfer groups](../manage.md#transfer-a-group) if the groups are in the same GitLab instance. Transferring groups
|
||||
instead of migrating them is a faster and more complete option.
|
||||
|
|
|
|||
|
|
@ -220,7 +220,8 @@ To integrate Microsoft Azure AD, you:
|
|||
|
||||
To configure for a GitLab.com group:
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your top-level group.
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
This group must be at the top level.
|
||||
1. Select **Settings > SAML SSO**.
|
||||
1. Configure [SAML SSO for the group](../../../user/group/saml_sso/index.md).
|
||||
1. In the **Microsoft Azure integration** section, select the **Enable Microsoft Azure integration for this group** checkbox.
|
||||
|
|
|
|||
|
|
@ -175,7 +175,8 @@ To limit potential abuse, you can restrict users from creating tokens for a grou
|
|||
|
||||
To restrict the creation of group access tokens:
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your top-level group.
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
This group must be at the top level.
|
||||
1. Select **Settings > General**.
|
||||
1. Expand **Permissions and group features**.
|
||||
1. Under **Permissions**, clear the **Users can create project access tokens and group access tokens in this group** checkbox.
|
||||
|
|
|
|||
|
|
@ -128,7 +128,8 @@ See the warning in [create a project access token](#create-a-project-access-toke
|
|||
|
||||
To limit potential abuse, you can restrict users from creating tokens for a group hierarchy. This setting is only configurable for a top-level group and applies to every downstream project and subgroup. Any existing project access tokens remain valid until their expiration date or until manually revoked.
|
||||
|
||||
1. On the left sidebar, select **Search or go to** and find your top-level group.
|
||||
1. On the left sidebar, select **Search or go to** and find your group.
|
||||
This group must be at the top level.
|
||||
1. Select **Settings > General**.
|
||||
1. Expand **Permissions and group features**.
|
||||
1. In **Permissions**, clear the **Users can create project access tokens and group access tokens in this group** checkbox.
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ require_relative 'secret_detection/status'
|
|||
require_relative 'secret_detection/finding'
|
||||
require_relative 'secret_detection/response'
|
||||
require_relative 'secret_detection/scan'
|
||||
require_relative 'secret_detection/scan_diffs'
|
||||
require_relative 'secret_detection/grpc'
|
||||
require_relative 'secret_detection/utils'
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue