Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
08608c8e9e
commit
e9aabbc4b5
|
|
@ -14,7 +14,7 @@ include:
|
|||
gitlab_auth_token_variable_name: "PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE"
|
||||
allure_job_name: "${QA_RUN_TYPE}"
|
||||
- project: gitlab-org/quality/pipeline-common
|
||||
ref: 7.13.3
|
||||
ref: 8.0.0
|
||||
file:
|
||||
- /ci/base.gitlab-ci.yml
|
||||
- /ci/knapsack-report.yml
|
||||
|
|
|
|||
|
|
@ -66,6 +66,5 @@ Capybara/VisibilityMatcher:
|
|||
- 'spec/support/shared_examples/features/rss_shared_examples.rb'
|
||||
- 'spec/support/shared_examples/features/wiki/file_attachments_shared_examples.rb'
|
||||
- 'spec/views/import/gitlab_projects/new.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
|
||||
- 'spec/views/profiles/preferences/show.html.haml_spec.rb'
|
||||
- 'spec/views/projects/merge_requests/edit.html.haml_spec.rb'
|
||||
|
|
|
|||
|
|
@ -2288,7 +2288,6 @@ Layout/LineLength:
|
|||
- 'ee/spec/views/compliance_management/compliance_framework/_project_settings.html.haml_spec.rb'
|
||||
- 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
|
||||
- 'ee/spec/views/operations/environments.html.haml_spec.rb'
|
||||
- 'ee/spec/views/projects/security/discover/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/shared/_mirror_status.html.haml_spec.rb'
|
||||
|
|
@ -4885,7 +4884,6 @@ Layout/LineLength:
|
|||
- 'spec/views/groups/edit.html.haml_spec.rb'
|
||||
- 'spec/views/help/index.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/_head.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
|
||||
- 'spec/views/notify/push_to_merge_request_email.text.haml_spec.rb'
|
||||
- 'spec/views/profiles/keys/_form.html.haml_spec.rb'
|
||||
- 'spec/views/projects/commits/_commit.html.haml_spec.rb'
|
||||
|
|
|
|||
|
|
@ -735,8 +735,6 @@ RSpec/BeforeAllRoleAssignment:
|
|||
- 'ee/spec/support/shared_examples/serializers/report_status_shared_examples.rb'
|
||||
- 'ee/spec/views/compliance_management/compliance_framework/_project_settings.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/header/_new_dropdown.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
|
||||
- 'ee/spec/views/shared/promotions/_promotion_link_project.html.haml_spec.rb'
|
||||
- 'ee/spec/workers/abuse/new_abuse_report_worker_spec.rb'
|
||||
- 'ee/spec/workers/app_sec/dast/profile_schedule_worker_spec.rb'
|
||||
|
|
|
|||
|
|
@ -852,9 +852,6 @@ RSpec/ContextWording:
|
|||
- 'ee/spec/views/groups/edit.html.haml_spec.rb'
|
||||
- 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/header/_read_only_banner.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_push_rules_link.html.haml_spec.rb'
|
||||
- 'ee/spec/views/profiles/preferences/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/projects/security/discover/show.html.haml_spec.rb'
|
||||
- 'ee/spec/views/shared/_clone_panel.html.haml_spec.rb'
|
||||
|
|
@ -3006,7 +3003,6 @@ RSpec/ContextWording:
|
|||
- 'spec/views/groups/_home_panel.html.haml_spec.rb'
|
||||
- 'spec/views/groups/edit.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/application.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
|
||||
- 'spec/views/notify/changed_milestone_email.html.haml_spec.rb'
|
||||
- 'spec/views/profiles/keys/_key.html.haml_spec.rb'
|
||||
- 'spec/views/profiles/preferences/show.html.haml_spec.rb'
|
||||
|
|
|
|||
|
|
@ -207,8 +207,6 @@ RSpec/FactoryBot/AvoidCreate:
|
|||
- 'ee/spec/views/layouts/group.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/header/_read_only_banner.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/project.html.haml_spec.rb'
|
||||
- 'ee/spec/views/projects/edit.html.haml_spec.rb'
|
||||
- 'ee/spec/views/projects/on_demand_scans/index.html.haml_spec.rb'
|
||||
|
|
@ -569,9 +567,6 @@ RSpec/FactoryBot/AvoidCreate:
|
|||
- 'spec/views/layouts/application.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/devise.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/fullscreen.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_profile.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/profile.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/terms.html.haml_spec.rb'
|
||||
- 'spec/views/notify/approved_merge_request_email.html.haml_spec.rb'
|
||||
|
|
@ -627,7 +622,6 @@ RSpec/FactoryBot/AvoidCreate:
|
|||
- 'spec/views/shared/issuable/_sidebar.html.haml_spec.rb'
|
||||
- 'spec/views/shared/milestones/_issuable.html.haml_spec.rb'
|
||||
- 'spec/views/shared/milestones/_top.html.haml_spec.rb'
|
||||
- 'spec/views/shared/nav/_sidebar.html.haml_spec.rb'
|
||||
- 'spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb'
|
||||
- 'spec/views/shared/projects/_list.html.haml_spec.rb'
|
||||
- 'spec/views/shared/projects/_project.html.haml_spec.rb'
|
||||
|
|
|
|||
|
|
@ -1450,7 +1450,6 @@ RSpec/FeatureCategory:
|
|||
- 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/header/_ee_subscribable_banner.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/header/_read_only_banner.html.haml_spec.rb'
|
||||
- 'ee/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb'
|
||||
- 'ee/spec/views/operations/environments.html.haml_spec.rb'
|
||||
- 'ee/spec/views/operations/index.html.haml_spec.rb'
|
||||
- 'ee/spec/views/profiles/preferences/show.html.haml_spec.rb'
|
||||
|
|
@ -5408,8 +5407,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/views/layouts/devise_empty.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/fullscreen.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/header/_gitlab_version.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/nav/sidebar/_profile.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/profile.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/signup_onboarding.html.haml_spec.rb'
|
||||
- 'spec/views/layouts/terms.html.haml_spec.rb'
|
||||
|
|
@ -5474,7 +5471,6 @@ RSpec/FeatureCategory:
|
|||
- 'spec/views/shared/milestones/_issuable.html.haml_spec.rb'
|
||||
- 'spec/views/shared/milestones/_issuables.html.haml_spec.rb'
|
||||
- 'spec/views/shared/milestones/_top.html.haml_spec.rb'
|
||||
- 'spec/views/shared/nav/_sidebar.html.haml_spec.rb'
|
||||
- 'spec/views/shared/projects/_inactive_project_deletion_alert.html.haml_spec.rb'
|
||||
- 'spec/views/shared/projects/_list.html.haml_spec.rb'
|
||||
- 'spec/views/shared/projects/_project.html.haml_spec.rb'
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ export default {
|
|||
@submit.prevent.stop="onSubmit"
|
||||
>
|
||||
<gl-form-group :label="s__('Badges|Name')" label-for="badge-name" class="gl-max-w-48">
|
||||
<gl-form-input id="badge-name" v-model="name" data-qa-selector="badge_name_field" />
|
||||
<gl-form-input id="badge-name" v-model="name" data-testid="badge-name-field" />
|
||||
</gl-form-group>
|
||||
|
||||
<div class="form-group">
|
||||
|
|
@ -222,7 +222,7 @@ export default {
|
|||
<input
|
||||
id="badge-link-url"
|
||||
v-model="linkUrl"
|
||||
data-qa-selector="badge_link_url_field"
|
||||
data-testid="badge-link-url-field"
|
||||
type="URL"
|
||||
class="form-control gl-form-input gl-max-w-80"
|
||||
required
|
||||
|
|
@ -238,7 +238,7 @@ export default {
|
|||
<input
|
||||
id="badge-image-url"
|
||||
v-model="imageUrl"
|
||||
data-qa-selector="badge_image_url_field"
|
||||
data-testid="badge-image-url-field"
|
||||
type="URL"
|
||||
class="form-control gl-form-input gl-max-w-80"
|
||||
required
|
||||
|
|
@ -270,7 +270,7 @@ export default {
|
|||
type="submit"
|
||||
variant="confirm"
|
||||
category="primary"
|
||||
data-qa-selector="add_badge_button"
|
||||
data-testid="add-badge-button"
|
||||
class="gl-mr-3"
|
||||
>
|
||||
{{ saveText }}
|
||||
|
|
|
|||
|
|
@ -252,12 +252,7 @@ export default {
|
|||
class="gl-w-6 gl-h-6 gl-display-flex gl-align-items-center"
|
||||
/>
|
||||
|
||||
<gl-link
|
||||
data-qa-selector="cluster"
|
||||
:data-qa-cluster-name="item.name"
|
||||
:href="item.path"
|
||||
class="gl-px-3"
|
||||
>
|
||||
<gl-link :href="item.path" class="gl-px-3">
|
||||
{{ item.name }}
|
||||
</gl-link>
|
||||
|
||||
|
|
|
|||
|
|
@ -266,7 +266,6 @@ export default {
|
|||
class="gl-form-input-xl"
|
||||
name="deploy_token_expires_at"
|
||||
:value="formattedExpiryDate"
|
||||
data-qa-selector="deploy_token_expires_at_field"
|
||||
/>
|
||||
</gl-form-group>
|
||||
<gl-form-group
|
||||
|
|
@ -298,7 +297,6 @@ export default {
|
|||
:key="scope.id"
|
||||
v-model="scope.value"
|
||||
:name="scope.id"
|
||||
:data-qa-selector="`${scope.id}_checkbox`"
|
||||
>
|
||||
{{ scope.scopeName }}
|
||||
<template #help>{{ scope.helpText }}</template>
|
||||
|
|
|
|||
|
|
@ -169,16 +169,10 @@ export default {
|
|||
{
|
||||
text: this.ignoreBtnLabel,
|
||||
action: this.onIgnoreStatusUpdate,
|
||||
extraAttrs: {
|
||||
'data-qa-selector': 'update_ignore_status_button',
|
||||
},
|
||||
},
|
||||
{
|
||||
text: this.resolveBtnLabel,
|
||||
action: this.onResolveStatusUpdate,
|
||||
extraAttrs: {
|
||||
'data-qa-selector': 'update_resolve_status_button',
|
||||
},
|
||||
},
|
||||
];
|
||||
},
|
||||
|
|
@ -187,7 +181,7 @@ export default {
|
|||
text: __('View issue'),
|
||||
href: this.error.gitlabIssuePath,
|
||||
extraAttrs: {
|
||||
'data-qa-selector': 'view_issue_button',
|
||||
'data-testid': 'view-issue-button',
|
||||
},
|
||||
};
|
||||
},
|
||||
|
|
@ -342,7 +336,7 @@ export default {
|
|||
<gl-button
|
||||
v-if="error.gitlabIssuePath"
|
||||
class="gl-ml-3"
|
||||
data-testid="view_issue_button"
|
||||
data-testid="view-issue-button"
|
||||
:href="error.gitlabIssuePath"
|
||||
variant="confirm"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ import { state } from '~/sidebar/components/reviewers/sidebar_reviewers.vue';
|
|||
import AjaxCache from './lib/utils/ajax_cache';
|
||||
import { spriteIcon } from './lib/utils/common_utils';
|
||||
import { parsePikadayDate } from './lib/utils/datetime_utility';
|
||||
import glRegexp from './lib/utils/regexp';
|
||||
import { unicodeLetters } from './lib/utils/regexp';
|
||||
|
||||
const USERS_ALIAS = 'users';
|
||||
const ISSUES_ALIAS = 'issues';
|
||||
|
|
@ -307,10 +307,7 @@ class GfmAutoComplete {
|
|||
callbacks: {
|
||||
...this.getDefaultCallbacks(),
|
||||
matcher(flag, subtext) {
|
||||
const regexp = new RegExp(
|
||||
`(?:[^${glRegexp.unicodeLetters}0-9:]|\n|^):([^ :][^:]*)?$`,
|
||||
'gi',
|
||||
);
|
||||
const regexp = new RegExp(`(?:[^${unicodeLetters}0-9:]|\n|^):([^ :][^:]*)?$`, 'gi');
|
||||
const match = regexp.exec(subtext);
|
||||
|
||||
if (match && match.length) {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { debounce, merge } from 'lodash';
|
||||
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
|
||||
|
||||
const OLD_KEY = 'gl-bulk-imports-import-state';
|
||||
export const KEY = 'gl-bulk-imports-import-state-v2';
|
||||
const OLD_KEY = 'gl-bulk-imports-import-state-v2';
|
||||
export const KEY = 'gl-bulk-imports-import-state-v3';
|
||||
export const DEBOUNCE_INTERVAL = DEFAULT_DEBOUNCE_AND_THROTTLE_MS;
|
||||
|
||||
export class LocalStorageCache {
|
||||
|
|
|
|||
|
|
@ -4,12 +4,5 @@
|
|||
|
||||
// Inspired by https://github.com/mishoo/UglifyJS/blob/2bc1d02363db3798d5df41fb5059a19edca9b7eb/lib/parse-js.js#L203
|
||||
// Unicode 6.1
|
||||
const unicodeLetters =
|
||||
export const unicodeLetters =
|
||||
'\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F0\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC';
|
||||
|
||||
/**
|
||||
* A regex that matches all single quotes in a string
|
||||
*/
|
||||
export const allSingleQuotes = /'/g;
|
||||
|
||||
export default { unicodeLetters, allSingleQuotes };
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import {
|
|||
TRUNCATE_WIDTH_DEFAULT_WIDTH,
|
||||
TRUNCATE_WIDTH_DEFAULT_FONT_SIZE,
|
||||
} from '~/lib/utils/constants';
|
||||
import { allSingleQuotes } from '~/lib/utils/regexp';
|
||||
|
||||
export const COLON = ':';
|
||||
export const HYPHEN = '-';
|
||||
|
|
@ -445,6 +444,11 @@ export const markdownConfig = {
|
|||
ALLOW_DATA_ATTR: false,
|
||||
};
|
||||
|
||||
/**
|
||||
* A regex that matches all single quotes in a string
|
||||
*/
|
||||
const allSingleQuotes = /'/g;
|
||||
|
||||
/**
|
||||
* Escapes a string into a shell string, for example
|
||||
* when you want to give a user the command to checkout
|
||||
|
|
|
|||
|
|
@ -19,7 +19,8 @@ import WorkItemDueDate from './work_item_due_date.vue';
|
|||
import WorkItemAssignees from './work_item_assignees.vue';
|
||||
import WorkItemLabels from './work_item_labels.vue';
|
||||
import WorkItemMilestone from './work_item_milestone.vue';
|
||||
import WorkItemParent from './work_item_parent.vue';
|
||||
import WorkItemParentInline from './work_item_parent_inline.vue';
|
||||
import WorkItemParent from './work_item_parent_with_edit.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
|
@ -28,6 +29,7 @@ export default {
|
|||
WorkItemAssignees,
|
||||
WorkItemDueDate,
|
||||
WorkItemParent,
|
||||
WorkItemParentInline,
|
||||
WorkItemWeightInline: () =>
|
||||
import('ee_component/work_items/components/work_item_weight_inline.vue'),
|
||||
WorkItemWeight: () =>
|
||||
|
|
@ -209,14 +211,25 @@ export default {
|
|||
:work-item-type="workItemType"
|
||||
@error="$emit('error', $event)"
|
||||
/>
|
||||
<work-item-parent
|
||||
v-if="showWorkItemParent"
|
||||
class="gl-mb-5"
|
||||
:can-update="canUpdate"
|
||||
:work-item-id="workItem.id"
|
||||
:work-item-type="workItemType"
|
||||
:parent="workItemParent"
|
||||
@error="$emit('error', $event)"
|
||||
/>
|
||||
<template v-if="showWorkItemParent">
|
||||
<work-item-parent
|
||||
v-if="glFeatures.workItemsMvc2"
|
||||
class="gl-mb-5"
|
||||
:can-update="canUpdate"
|
||||
:work-item-id="workItem.id"
|
||||
:work-item-type="workItemType"
|
||||
:parent="workItemParent"
|
||||
@error="$emit('error', $event)"
|
||||
/>
|
||||
<work-item-parent-inline
|
||||
v-else
|
||||
class="gl-mb-5"
|
||||
:can-update="canUpdate"
|
||||
:work-item-id="workItem.id"
|
||||
:work-item-type="workItemType"
|
||||
:parent="workItemParent"
|
||||
@error="$emit('error', $event)"
|
||||
/>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,295 @@
|
|||
<script>
|
||||
import { GlButton, GlForm, GlLink, GlLoadingIcon, GlCollapsibleListbox } from '@gitlab/ui';
|
||||
import { debounce } from 'lodash';
|
||||
import * as Sentry from '~/sentry/sentry_browser_wrapper';
|
||||
|
||||
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
|
||||
import { s__ } from '~/locale';
|
||||
import updateWorkItemMutation from '~/work_items/graphql/update_work_item.mutation.graphql';
|
||||
|
||||
import { removeHierarchyChild } from '../graphql/cache_utils';
|
||||
import groupWorkItemsQuery from '../graphql/group_work_items.query.graphql';
|
||||
import projectWorkItemsQuery from '../graphql/project_work_items.query.graphql';
|
||||
import {
|
||||
I18N_WORK_ITEM_ERROR_UPDATING,
|
||||
sprintfWorkItem,
|
||||
SUPPORTED_PARENT_TYPE_MAP,
|
||||
} from '../constants';
|
||||
|
||||
export default {
|
||||
inputId: 'work-item-parent-listbox-value',
|
||||
noWorkItemId: 'no-work-item-id',
|
||||
i18n: {
|
||||
assignParentLabel: s__('WorkItem|Assign parent'),
|
||||
parentLabel: s__('WorkItem|Parent'),
|
||||
none: s__('WorkItem|None'),
|
||||
noMatchingResults: s__('WorkItem|No matching results'),
|
||||
unAssign: s__('WorkItem|Unassign'),
|
||||
workItemsFetchError: s__(
|
||||
'WorkItem|Something went wrong while fetching items. Please try again.',
|
||||
),
|
||||
},
|
||||
components: {
|
||||
GlButton,
|
||||
GlLoadingIcon,
|
||||
GlLink,
|
||||
GlForm,
|
||||
GlCollapsibleListbox,
|
||||
},
|
||||
inject: ['fullPath', 'isGroup'],
|
||||
props: {
|
||||
workItemId: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
parent: {
|
||||
type: Object,
|
||||
required: false,
|
||||
default: null,
|
||||
},
|
||||
workItemType: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: '',
|
||||
},
|
||||
canUpdate: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isEditing: false,
|
||||
search: '',
|
||||
updateInProgress: false,
|
||||
searchStarted: false,
|
||||
availableWorkItems: [],
|
||||
localSelectedItem: this.parent?.id,
|
||||
oldParent: this.parent,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
hasParent() {
|
||||
return this.parent !== null;
|
||||
},
|
||||
isLoading() {
|
||||
return this.$apollo.queries.availableWorkItems.loading;
|
||||
},
|
||||
listboxText() {
|
||||
return (
|
||||
this.workItems.find(({ value }) => this.localSelectedItem === value)?.text ||
|
||||
this.parent?.title ||
|
||||
this.$options.i18n.none
|
||||
);
|
||||
},
|
||||
workItems() {
|
||||
return this.availableWorkItems.map(({ id, title }) => ({ text: title, value: id }));
|
||||
},
|
||||
parentType() {
|
||||
return SUPPORTED_PARENT_TYPE_MAP[this.workItemType];
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
parent: {
|
||||
handler(newVal) {
|
||||
if (!this.isEditing) {
|
||||
this.localSelectedItem = newVal?.id;
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);
|
||||
},
|
||||
apollo: {
|
||||
availableWorkItems: {
|
||||
query() {
|
||||
return this.isGroup ? groupWorkItemsQuery : projectWorkItemsQuery;
|
||||
},
|
||||
variables() {
|
||||
return {
|
||||
fullPath: this.fullPath,
|
||||
searchTerm: this.search,
|
||||
types: this.parentType,
|
||||
in: this.search ? 'TITLE' : undefined,
|
||||
iid: null,
|
||||
isNumber: false,
|
||||
};
|
||||
},
|
||||
skip() {
|
||||
return !this.searchStarted;
|
||||
},
|
||||
update(data) {
|
||||
return data.workspace.workItems.nodes.filter((wi) => this.workItemId !== wi.id) || [];
|
||||
},
|
||||
error() {
|
||||
this.$emit('error', this.$options.i18n.workItemsFetchError);
|
||||
},
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
blurInput() {
|
||||
this.$refs.input.$el.blur();
|
||||
},
|
||||
handleFocus() {
|
||||
this.isEditing = true;
|
||||
},
|
||||
setSearchKey(value) {
|
||||
this.search = value;
|
||||
},
|
||||
async updateParent() {
|
||||
if (this.parent?.id === this.localSelectedItem) return;
|
||||
|
||||
this.updateInProgress = true;
|
||||
try {
|
||||
const {
|
||||
data: {
|
||||
workItemUpdate: { errors },
|
||||
},
|
||||
} = await this.$apollo.mutate({
|
||||
mutation: updateWorkItemMutation,
|
||||
variables: {
|
||||
input: {
|
||||
id: this.workItemId,
|
||||
hierarchyWidget: {
|
||||
parentId:
|
||||
this.localSelectedItem === this.$options.noWorkItemId
|
||||
? null
|
||||
: this.localSelectedItem,
|
||||
},
|
||||
},
|
||||
},
|
||||
update: (cache) =>
|
||||
removeHierarchyChild({
|
||||
cache,
|
||||
fullPath: this.fullPath,
|
||||
iid: this.oldParent?.iid,
|
||||
isGroup: this.isGroup,
|
||||
workItem: { id: this.workItemId },
|
||||
}),
|
||||
});
|
||||
|
||||
if (errors.length) {
|
||||
this.$emit('error', errors.join('\n'));
|
||||
this.localSelectedItem = this.parent?.id || this.$options.noWorkItemId;
|
||||
}
|
||||
} catch (error) {
|
||||
this.$emit('error', sprintfWorkItem(I18N_WORK_ITEM_ERROR_UPDATING, this.workItemType));
|
||||
Sentry.captureException(error);
|
||||
} finally {
|
||||
this.updateInProgress = false;
|
||||
this.isEditing = false;
|
||||
}
|
||||
},
|
||||
handleItemClick(item) {
|
||||
this.localSelectedItem = item;
|
||||
this.searchStarted = false;
|
||||
this.search = '';
|
||||
this.updateParent();
|
||||
},
|
||||
unassignParent() {
|
||||
this.localSelectedItem = this.$options.noWorkItemId;
|
||||
this.isEditing = false;
|
||||
this.updateParent();
|
||||
},
|
||||
onListboxShown() {
|
||||
this.searchStarted = true;
|
||||
},
|
||||
onListboxHide() {
|
||||
this.searchStarted = false;
|
||||
this.search = '';
|
||||
this.isEditing = false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div>
|
||||
<div class="gl-display-flex gl-align-items-center">
|
||||
<!-- hide header when editing, since we then have a form label. Keep it reachable for screenreader nav -->
|
||||
<h3 :class="{ 'gl-sr-only': isEditing }" class="gl-mb-0! gl-heading-scale-5">
|
||||
{{ __('Parent') }}
|
||||
</h3>
|
||||
<gl-loading-icon
|
||||
v-if="updateInProgress"
|
||||
data-testid="loading-icon-parent"
|
||||
size="sm"
|
||||
inline
|
||||
class="gl-ml-2 gl-my-0"
|
||||
/>
|
||||
<gl-button
|
||||
v-if="canUpdate && !isEditing"
|
||||
data-testid="edit-parent"
|
||||
category="tertiary"
|
||||
size="small"
|
||||
class="gl-ml-auto gl-mr-2"
|
||||
:disabled="updateInProgress"
|
||||
@click="isEditing = true"
|
||||
>{{ __('Edit') }}</gl-button
|
||||
>
|
||||
</div>
|
||||
<gl-form v-if="isEditing" class="gl-flex-nowrap" data-testid="work-item-parent-form">
|
||||
<div class="gl-display-flex gl-justify-content-space-between gl-align-items-center">
|
||||
<label :for="$options.inputId" class="gl-mb-0">{{ __('Parent') }}</label>
|
||||
<gl-button
|
||||
data-testid="apply-parent"
|
||||
category="tertiary"
|
||||
size="small"
|
||||
class="gl-mr-2"
|
||||
:disabled="updateInProgress"
|
||||
@click="isEditing = false"
|
||||
>{{ __('Apply') }}</gl-button
|
||||
>
|
||||
</div>
|
||||
<div>
|
||||
<!-- wrapper for the form input so the borders fit inside the sidebar -->
|
||||
<div class="gl-pr-2 gl-relative">
|
||||
<gl-collapsible-listbox
|
||||
id="$options.inputId"
|
||||
ref="input"
|
||||
class="gl-display-block"
|
||||
data-testid="work-item-parent-listbox"
|
||||
block
|
||||
searchable
|
||||
start-opened
|
||||
is-check-centered
|
||||
category="primary"
|
||||
fluid-width
|
||||
:searching="isLoading"
|
||||
:header-text="$options.i18n.assignParentLabel"
|
||||
:no-results-text="$options.i18n.noMatchingResults"
|
||||
:loading="updateInProgress"
|
||||
:items="workItems"
|
||||
:toggle-text="listboxText"
|
||||
:selected="localSelectedItem"
|
||||
:reset-button-label="$options.i18n.unAssign"
|
||||
@reset="unassignParent"
|
||||
@search="debouncedSearchKeyUpdate"
|
||||
@select="handleItemClick"
|
||||
@shown="onListboxShown"
|
||||
@hidden="onListboxHide"
|
||||
>
|
||||
<template #list-item="{ item }">
|
||||
<div @click="handleItemClick(item.value, $event)">
|
||||
{{ item.text }}
|
||||
</div>
|
||||
</template>
|
||||
</gl-collapsible-listbox>
|
||||
</div>
|
||||
</div>
|
||||
</gl-form>
|
||||
<template v-else-if="hasParent">
|
||||
<gl-link
|
||||
data-testid="work-item-parent-link"
|
||||
class="gl-link gl-text-gray-900 gl-display-inline-block gl-max-w-full gl-white-space-nowrap gl-text-overflow-ellipsis gl-overflow-hidden"
|
||||
:href="parent.webUrl"
|
||||
>{{ listboxText }}</gl-link
|
||||
>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div data-testid="work-item-parent-none" class="gl-text-secondary">{{ __('None') }}</div>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -97,11 +97,11 @@ module PackagesHelper
|
|||
}
|
||||
end
|
||||
|
||||
def settings_data
|
||||
def settings_data(project)
|
||||
cleanup_settings_data.merge(
|
||||
show_container_registry_settings: show_container_registry_settings(@project).to_s,
|
||||
show_package_registry_settings: show_package_registry_settings(@project).to_s,
|
||||
cleanup_settings_path: cleanup_image_tags_project_settings_packages_and_registries_path(@project)
|
||||
show_container_registry_settings: show_container_registry_settings(project).to_s,
|
||||
show_package_registry_settings: show_package_registry_settings(project).to_s,
|
||||
cleanup_settings_path: cleanup_image_tags_project_settings_packages_and_registries_path(project)
|
||||
)
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class ProjectFeature < ApplicationRecord
|
|||
model_registry
|
||||
].freeze
|
||||
|
||||
EXPORTABLE_FEATURES = (FEATURES - [:security_and_compliance, :pages]).freeze
|
||||
EXPORTABLE_FEATURES = (FEATURES - [:security_and_compliance, :pages, :metrics_dashboard]).freeze
|
||||
|
||||
set_available_features(FEATURES)
|
||||
|
||||
|
|
|
|||
|
|
@ -58,6 +58,13 @@ module BulkImports
|
|||
http_client.stream(relative_url) do |chunk|
|
||||
next if bytes_downloaded == 0 && [301, 302, 303, 307, 308].include?(chunk.code)
|
||||
|
||||
if BulkImports::NetworkError::RETRIABLE_HTTP_CODES.include?(chunk.code)
|
||||
raise BulkImports::NetworkError.new(
|
||||
"Error downloading file from #{relative_url}. Error code: #{chunk.code}",
|
||||
response: chunk.http_response
|
||||
)
|
||||
end
|
||||
|
||||
@response_code = chunk.code
|
||||
@response_headers ||= Gitlab::HTTP::Response::Headers.new(chunk.http_response.to_hash)
|
||||
@last_chunk_context = chunk.to_s.truncate(LAST_CHUNK_CONTEXT_CHAR_LIMIT)
|
||||
|
|
|
|||
|
|
@ -4,9 +4,7 @@
|
|||
%body{ class: "#{user_tab_width} #{@body_class} fullscreen-layout", data: { page: body_data_page } }
|
||||
= render 'peek/bar'
|
||||
= header_message
|
||||
.gl--flex-full.gl-h-full{ class: nav ? ["layout-page", page_with_sidebar_class, "gl-mt-0!"]: '' }
|
||||
- if defined?(nav) && nav
|
||||
= render "layouts/nav/sidebar/#{nav}"
|
||||
.gl--flex-full.gl-h-full
|
||||
.gl--flex-full.gl-flex-direction-column.gl-w-full
|
||||
.alert-wrapper
|
||||
= render 'shared/outdated_browser'
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
= render partial: 'shared/nav/sidebar', object: Sidebars::Admin::Panel.new(Sidebars::Context.new(current_user: current_user, container: nil))
|
||||
|
|
@ -1 +0,0 @@
|
|||
= render partial: 'shared/nav/sidebar', object: Sidebars::Explore::Panel.new(Sidebars::Context.new(current_user: current_user, container: nil))
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
- group = @parent_group || @group
|
||||
= render partial: 'shared/nav/sidebar', object: Sidebars::Groups::Panel.new(group_sidebar_context(group, current_user))
|
||||
|
|
@ -1 +0,0 @@
|
|||
= render partial: 'shared/nav/sidebar', object: Sidebars::Organizations::Panel.new(organization_sidebar_context(@organization, current_user))
|
||||
|
|
@ -1 +0,0 @@
|
|||
= render partial: 'shared/nav/sidebar', object: Sidebars::UserSettings::Panel.new(Sidebars::Context.new(current_user: current_user, container: current_user))
|
||||
|
|
@ -1 +0,0 @@
|
|||
= render partial: 'shared/nav/sidebar', object: Sidebars::Projects::Panel.new(project_sidebar_context(@project, current_user, current_ref, ref_type: @ref_type))
|
||||
|
|
@ -1 +0,0 @@
|
|||
-# if this file is missing empty or not the old left menu throws error
|
||||
|
|
@ -1 +0,0 @@
|
|||
= render partial: 'shared/nav/sidebar', object: Sidebars::UserProfile::Panel.new(Sidebars::Context.new(current_user: current_user, container: @user))
|
||||
|
|
@ -1 +0,0 @@
|
|||
= render partial: 'shared/nav/sidebar', object: Sidebars::YourWork::Panel.new(your_work_sidebar_context(current_user))
|
||||
|
|
@ -24,10 +24,12 @@
|
|||
.form-group
|
||||
= f.fields_for :project_setting do |settings|
|
||||
= settings.gitlab_ui_checkbox_component :pages_multiple_versions_enabled,
|
||||
s_('GitLabPages|Use multiple versions'),
|
||||
s_('GitLabPages|Use multiple deployments'),
|
||||
label_options: { class: 'label-bold' }
|
||||
%p.gl-pl-6
|
||||
= s_("GitLabPages|When enabled, you can create multiple versions of your pages site.").html_safe
|
||||
= safe_format(s_("GitLabPages|When enabled, you can create multiple deployments of your pages site. %{docs_link_start}Learn More.%{link_end}"),
|
||||
tag_pair(tag.a(href: help_page_path('user/project/pages/index', anchor: 'create-multiple-deployments'), target: '_blank'),
|
||||
:docs_link_start, :link_end))
|
||||
|
||||
.gl-mt-3
|
||||
= f.submit s_('GitLabPages|Save changes'), pajamas_button: true
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@
|
|||
- page_title _('Packages and registries settings')
|
||||
- @force_desktop_expanded_sidebar = true
|
||||
|
||||
#js-registry-settings{ data: settings_data }
|
||||
#js-registry-settings{ data: settings_data(@project) }
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
%a.toggle-sidebar-button.js-toggle-sidebar.rspec-toggle-sidebar{ role: "button", type: "button", title: "Toggle sidebar" }
|
||||
= sprite_icon('chevron-double-lg-left', size: 12, css_class: 'icon-chevron-double-lg-left')
|
||||
%span.collapse-text.gl-ml-3= _("Collapse sidebar")
|
||||
|
||||
= button_tag class: 'close-nav-button', type: 'button' do
|
||||
= sprite_icon('close')
|
||||
%span.collapse-text.gl-ml-3= _("Close sidebar")
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
%li.context-header
|
||||
= link_to admin_root_path, title: _('Admin Area'), class: 'has-tooltip', data: { container: 'body', placement: 'right' } do
|
||||
%span.avatar-container.icon-avatar.rect-avatar.s32
|
||||
= sprite_icon('admin', size: 18)
|
||||
%span.sidebar-context-title
|
||||
= _('Admin Area')
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
%li.context-header
|
||||
= link_to explore_root_url, title: _('Explore'), class: 'has-tooltip', data: { container: 'body', placement: 'right' } do
|
||||
%span.avatar-container.icon-avatar.rect-avatar.s32
|
||||
= sprite_icon('compass', size: 18)
|
||||
%span.sidebar-context-title
|
||||
= _('Explore')
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
= nav_link(**scope_menu.active_routes, html_options: scope_menu.nav_link_html_options) do
|
||||
= link_to scope_menu.link, **scope_menu.link_html_options, data: { qa_selector: 'sidebar_menu_link', qa_menu_item: scope_qa_menu_item(scope_menu.container) } do
|
||||
%span{ class: scope_avatar_classes(scope_menu.container) }
|
||||
= source_icon(scope_menu.container, alt: scope_menu.title, class: ['avatar', 'avatar-tile', 's32'], width: 32, height: 32)
|
||||
%span.sidebar-context-title
|
||||
= scope_menu.title
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
%aside.nav-sidebar{ class: ('sidebar-collapsed-desktop' if collapsed_sidebar?), **sidebar_tracking_attributes_by_object(sidebar.container), 'aria-label': sidebar.aria_label }
|
||||
.nav-sidebar-inner-scroll
|
||||
%ul.sidebar-top-level-items{ data: { testid: sidebar_qa_selector(sidebar.container) } }
|
||||
- if sidebar.render_raw_scope_menu_partial
|
||||
= render sidebar.render_raw_scope_menu_partial
|
||||
- elsif sidebar.scope_menu
|
||||
= render partial: 'shared/nav/scope_menu', object: sidebar.scope_menu
|
||||
|
||||
- if sidebar.renderable_menus.any?
|
||||
= render partial: 'shared/nav/sidebar_menu', collection: sidebar.renderable_menus
|
||||
|
||||
- if sidebar.render_raw_menus_partial
|
||||
= render sidebar.render_raw_menus_partial
|
||||
|
||||
= render partial: 'shared/nav/sidebar_hidden_menu_item', collection: sidebar.hidden_menu&.renderable_items
|
||||
= render 'shared/sidebar_toggle_button'
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
%li.hidden
|
||||
= link_to sidebar_hidden_menu_item.link, **sidebar_hidden_menu_item.link_html_options do
|
||||
= sidebar_hidden_menu_item.title
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
= nav_link(**sidebar_menu.all_active_routes, html_options: sidebar_menu.nav_link_html_options) do
|
||||
- if sidebar_menu.menu_with_partial?
|
||||
= render_if_exists sidebar_menu.menu_partial, **sidebar_menu.menu_partial_options
|
||||
- else
|
||||
= link_to sidebar_menu.link, **sidebar_menu.link_html_options, data: { testid: 'sidebar_menu_link', qa_menu_item: sidebar_menu.title } do
|
||||
- if sidebar_menu.icon_or_image?
|
||||
%span.nav-icon-container
|
||||
- if sidebar_menu.image_path
|
||||
= image_tag(sidebar_menu.image_path, **sidebar_menu.image_html_options)
|
||||
- elsif sidebar_menu.sprite_icon
|
||||
= sprite_icon(sidebar_menu.sprite_icon, **sidebar_menu.sprite_icon_html_options)
|
||||
|
||||
%span.nav-item-name{ **sidebar_menu.title_html_options }
|
||||
= sidebar_menu.title
|
||||
- if sidebar_menu.has_pill?
|
||||
= gl_badge_tag({ variant: :info, size: :sm }, { class: "count #{sidebar_menu.pill_html_options[:class]}" }) do
|
||||
= number_with_delimiter(sidebar_menu.pill_count)
|
||||
|
||||
= render partial: 'shared/nav/sidebar_submenu', locals: { sidebar_menu: sidebar_menu }
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
= nav_link(**sidebar_menu_item.active_routes, html_options: sidebar_menu_item.nav_link_html_options) do
|
||||
= link_to sidebar_menu_item.link, **sidebar_menu_item.link_html_options, data: { testid: 'sidebar_menu_item_link', qa_menu_item: sidebar_menu_item.title } do
|
||||
%span.gl-flex-grow-1
|
||||
= sidebar_menu_item.title
|
||||
- if sidebar_menu_item.sprite_icon
|
||||
= sprite_icon(sidebar_menu_item.sprite_icon, **sidebar_menu_item.sprite_icon_html_options)
|
||||
- if sidebar_menu_item.has_pill?
|
||||
= gl_badge_tag({ size: :sm, variant: :neutral }, { class: "count fly-out-badge gl-ml-3" }) do
|
||||
= number_with_delimiter(sidebar_menu_item.pill_count)
|
||||
- if sidebar_menu_item.show_hint?
|
||||
.js-feature-highlight{ **sidebar_menu_item.hint_html_options }
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
%ul.sidebar-sub-level-items{ class: ('is-fly-out-only' unless sidebar_menu.has_renderable_items?) }
|
||||
= nav_link(**sidebar_menu.all_active_routes, html_options: { class: 'fly-out-top-item' }) do
|
||||
%span.fly-out-top-item-container
|
||||
%strong.fly-out-top-item-name
|
||||
= sidebar_menu.title
|
||||
- if sidebar_menu.has_pill?
|
||||
= gl_badge_tag({ variant: :info, size: :sm }, { class: "count fly-out-badge #{sidebar_menu.pill_html_options[:class]}" }) do
|
||||
= number_with_delimiter(sidebar_menu.pill_count)
|
||||
|
||||
- if sidebar_menu.has_renderable_items?
|
||||
%li.divider.fly-out-top-item
|
||||
= render partial: 'shared/nav/sidebar_menu_item', collection: sidebar_menu.renderable_items
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
%li.context-header
|
||||
= link_to profile_path, title: _('User Settings'), class: 'has-tooltip', data: { container: 'body', placement: 'right' } do
|
||||
= render Pajamas::AvatarComponent.new(current_user, size: 32, alt: current_user.name, class: 'gl-mr-3 js-sidebar-user-avatar', avatar_options: { data: { testid: 'sidebar-user-avatar' } })
|
||||
%span.sidebar-context-title= _('User Settings')
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
%li.context-header
|
||||
= link_to root_path, title: _('Your work'), class: 'has-tooltip', data: { container: 'body', placement: 'right' } do
|
||||
%span.avatar-container.icon-avatar.rect-avatar.s32
|
||||
= sprite_icon('work', size: 18)
|
||||
%span.sidebar-context-title
|
||||
= _('Your work')
|
||||
|
|
@ -275,7 +275,7 @@
|
|||
:tags: []
|
||||
- :name: cronjob:ci_runners_reconcile_existing_runner_versions_cron
|
||||
:worker_name: Ci::Runners::ReconcileExistingRunnerVersionsCronWorker
|
||||
:feature_category: :runner_fleet
|
||||
:feature_category: :fleet_visibility
|
||||
:has_external_dependencies: false
|
||||
:urgency: :low
|
||||
:resource_boundary: :unknown
|
||||
|
|
@ -284,7 +284,7 @@
|
|||
:tags: []
|
||||
- :name: cronjob:ci_runners_stale_machines_cleanup_cron
|
||||
:worker_name: Ci::Runners::StaleMachinesCleanupCronWorker
|
||||
:feature_category: :runner_fleet
|
||||
:feature_category: :fleet_visibility
|
||||
:has_external_dependencies: false
|
||||
:urgency: :low
|
||||
:resource_boundary: :unknown
|
||||
|
|
@ -2741,7 +2741,7 @@
|
|||
:tags: []
|
||||
- :name: ci_runners_process_runner_version_update
|
||||
:worker_name: Ci::Runners::ProcessRunnerVersionUpdateWorker
|
||||
:feature_category: :runner_fleet
|
||||
:feature_category: :fleet_visibility
|
||||
:has_external_dependencies: false
|
||||
:urgency: :low
|
||||
:resource_boundary: :unknown
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ module Ci
|
|||
|
||||
data_consistency :always
|
||||
|
||||
feature_category :runner_fleet
|
||||
feature_category :fleet_visibility
|
||||
urgency :low
|
||||
|
||||
idempotent!
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ module Ci
|
|||
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
|
||||
|
||||
data_consistency :sticky
|
||||
feature_category :runner_fleet
|
||||
feature_category :fleet_visibility
|
||||
urgency :low
|
||||
|
||||
deduplicate :until_executed
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ module Ci
|
|||
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext
|
||||
|
||||
data_consistency :sticky
|
||||
feature_category :runner_fleet
|
||||
feature_category :fleet_visibility
|
||||
urgency :low
|
||||
|
||||
idempotent!
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@
|
|||
- build_artifacts
|
||||
- capacity_planning
|
||||
- cell
|
||||
- ci-cd_visibility
|
||||
- cloud_connector
|
||||
- cloud_native_installation
|
||||
- code_quality
|
||||
|
|
@ -61,6 +60,7 @@
|
|||
- error_tracking
|
||||
- feature_flags
|
||||
- five_minute_production_app
|
||||
- fleet_visibility
|
||||
- fulfillment_admin_tooling
|
||||
- fulfillment_infrastructure
|
||||
- fuzz_testing
|
||||
|
|
@ -109,7 +109,6 @@
|
|||
- requirements_management
|
||||
- review_apps
|
||||
- runner
|
||||
- runner_fleet
|
||||
- runner_saas
|
||||
- saas_provisioning
|
||||
- sbom
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ description: backfills `admin_mode` scope to personal access tokens associated t
|
|||
administrators
|
||||
feature_category: system_access
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107875
|
||||
milestone: 15.8
|
||||
milestone: '15.8'
|
||||
finalized_by: '20231128155514'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillCodeSuggestionsNamespaceSettings
|
|||
description: Updates default value of code_suggestions on namespace_settings table
|
||||
feature_category: code_suggestions
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121126
|
||||
milestone: 16.1
|
||||
milestone: '16.1'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillDefaultBranchProtectionNamespaceSetting
|
|||
description: This migration back fills column default_branch_protection_defaults of namespace settings table
|
||||
feature_category: database
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127335/
|
||||
milestone: 16.3
|
||||
milestone: '16.3'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillDesignManagementRepositories
|
|||
description: Backfills the new table with project ids
|
||||
feature_category: geo_replication
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116975
|
||||
milestone: 15.11
|
||||
milestone: '15.11'
|
||||
|
|
|
|||
|
|
@ -5,5 +5,5 @@ description: Backfill `dismissal_reason` for rows with `state` of `dismissed` in
|
|||
feature_category: vulnerability_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123518
|
||||
queued_migration_version: 20230612232000
|
||||
milestone: 16.1
|
||||
milestone: '16.1'
|
||||
finalized_by: '20231201144826'
|
||||
|
|
|
|||
|
|
@ -4,5 +4,5 @@ description: Backfills finding_id column on vulnerabilities table for a proper 1
|
|||
feature_category: vulnerability_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130058
|
||||
queued_migration_version: 20231116105945
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
finalize_after: '2023-12-15'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillHasMergeRequestOfVulnerabilityReads
|
|||
description: Backfills has_merge_request column for vulnerability_reads table.
|
||||
feature_category: database
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130952
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -5,5 +5,5 @@ description: Backfills has_remediations column for vulnerability_reads table.
|
|||
RE-ran because there was a error in remediation ingestion logic.
|
||||
feature_category: database
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/133714
|
||||
milestone: 16.7
|
||||
milestone: '16.7'
|
||||
queued_migration_version: 20231011142714
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ migration_job_name: BackfillMergeRequestDiffsProjectId
|
|||
description: Populates the new `merge_request_diffs.project_id` column after joining with the `merge_requests` table
|
||||
feature_category: code_review_workflow
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136800
|
||||
milestone: 16.7
|
||||
milestone: '16.7'
|
||||
queued_migration_version: 20231114043522
|
||||
finalize_after: '2024-04-01'
|
||||
finalized_by: # version of the migration that ensured this bbm
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@ description: Backfills ci_cd_settings for projects that do not have them
|
|||
feature_category: source_code_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124921
|
||||
queued_migration_version: 20230628023103
|
||||
milestone: 16.2
|
||||
milestone: '16.2'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillMissingVulnerabilityDismissalDetails
|
|||
description: Backfill missing vulnerability dimissal information as a result of https://gitlab.com/gitlab-org/gitlab/-/issues/412983
|
||||
feature_category: vulnerability_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126253
|
||||
milestone: 16.2
|
||||
milestone: '16.2'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillNugetNormalizedVersion
|
|||
description: Introduce a batched background migration to backfill the normalized_version column in packages_nuget_metadata table.
|
||||
feature_category: package_registry
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128675
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ migration_job_name: BackfillPackagesTagsProjectId
|
|||
description: Populates the new `packages_tags.project_id` column after joining with the `packages_packages` table
|
||||
feature_category: package_registry
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135451
|
||||
milestone: 16.6
|
||||
milestone: '16.6'
|
||||
queued_migration_version: 20231030071209
|
||||
finalize_after: '2023-12-23'
|
||||
finalized_by: # version of the migration that ensured this bbm
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillProjectStatisticsStorageSizeWithRecentSize
|
|||
description: Refreshes ProjectStatistics to use recent_objects_size for repository_size
|
||||
feature_category: consumables_cost_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128730
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillProjectStatisticsStorageSizeWithoutPipelineArtifacts
|
|||
description: Refreshes ProjectStatistics to remove pipeline_artifacts_size from the total storage_size
|
||||
feature_category: consumables_cost_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126053
|
||||
milestone: 16.3
|
||||
milestone: '16.3'
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ description: >-
|
|||
does not have an entry in this table.
|
||||
feature_category: geo
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113783
|
||||
milestone: 15.10
|
||||
milestone: '15.10'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillResourceLinkEvents
|
|||
description: Backfills resource_link_events table based off system_note_metadata and notes
|
||||
feature_category: team_planning
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/118605
|
||||
milestone: 16.1
|
||||
milestone: '16.1'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillRootStorageStatisticsForkStorageSizes
|
|||
description: Backfill the public_forks_storage_size, internal_forks_storage_size, and private_forks_storage_size columns on the namespace_root_storage_statistics table
|
||||
feature_category: consumables_cost_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/120916
|
||||
milestone: 16.1
|
||||
milestone: '16.1'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillUserPreferencesWithDefaults
|
|||
description: Backfills the user_preferences table columns with their default values
|
||||
feature_category: user_profile
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125774
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillUsersWithDefaults
|
|||
description: Backfills the users table columns with their default values
|
||||
feature_category: user_profile
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125881
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillUuidConversionColumnInVulnerabilityOccurrences
|
|||
description: backfill values for `uuid_convert_string_to_uuid` column in vulnerability_occurrences table
|
||||
feature_category: vulnerability_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/124986
|
||||
milestone: 16.2
|
||||
milestone: '16.2'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: BackfillWorkItemTypeIdForIssues
|
|||
description: Backfills every record in the issues table with the appropriate work_item_type_id
|
||||
feature_category: team_planning
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/96591
|
||||
milestone: 15.4
|
||||
milestone: '15.4'
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@ migration_job_name: BackfillWorkspacePersonalAccessToken
|
|||
description: Create personal access token for workspaces without one
|
||||
feature_category: remote_development
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131516
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ description: Updates value of expires_at column to 365 days from now when it's n
|
|||
Re-ran because there was a bypass that enabled some new PATs to be created with nil expires_at. That bypass was patched via https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121370.
|
||||
feature_category: system_access
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/123002
|
||||
milestone: 16.1
|
||||
milestone: '16.1'
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ description: |
|
|||
to hash and store values in new columns.
|
||||
feature_category: user_profile
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129350
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@ description: This migration creates 'project_compliance_standards_adherence' tab
|
|||
feature_category: compliance_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129941
|
||||
queued_migration_version: 20230818142801
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@ migration_job_name: DeleteInvalidProtectedBranchMergeAccessLevels
|
|||
description: Remove rows from protected_branch_merge_access_levels for groups that do not have project_group_links to the project for the associated protected branch
|
||||
feature_category: source_code_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134337
|
||||
milestone: 16.6
|
||||
milestone: '16.6'
|
||||
queued_migration_version: 20231016173129
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@ migration_job_name: DeleteInvalidProtectedBranchPushAccessLevels
|
|||
description: Remove rows from protected_branch_push_access_levels for groups that do not have project_group_links to the project for the associated protected branch
|
||||
feature_category: source_code_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134337
|
||||
milestone: 16.6
|
||||
milestone: '16.6'
|
||||
queued_migration_version: 20231016194927
|
||||
|
|
|
|||
|
|
@ -3,5 +3,5 @@ migration_job_name: DeleteInvalidProtectedTagCreateAccessLevels
|
|||
description: Remove rows from protected_tag_create_access_levels for groups that do not have project_group_links to the project for the associated protected tag
|
||||
feature_category: source_code_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134337
|
||||
milestone: 16.6
|
||||
milestone: '16.6'
|
||||
queued_migration_version: 20231016194943
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ description: |
|
|||
that are defined for a group hierachy prior to transfer, so they cannot be applied, nor edited.
|
||||
feature_category: security_policy_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127767
|
||||
milestone: 16.3
|
||||
milestone: '16.3'
|
||||
|
|
|
|||
|
|
@ -6,4 +6,4 @@ Odescription: |
|
|||
feature_category: security_policy_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127212
|
||||
queued_migration_version: 20230721095222
|
||||
milestone: 16.5
|
||||
milestone: '16.5'
|
||||
|
|
|
|||
|
|
@ -6,4 +6,4 @@ Odescription: |
|
|||
feature_category: security_policy_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127212
|
||||
queued_migration_version: 20230721095222
|
||||
milestone: 16.5
|
||||
milestone: '16.5'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: FixAllowDescendantsOverrideDisabledSharedRunners
|
|||
description: Clears invalid combination of shared runners settings (fixes subgroup creation)
|
||||
feature_category: runner_fleet
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128112
|
||||
milestone: 16.3
|
||||
milestone: '16.3'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: FixNamespaceIdsOfVulnerabilityReads
|
|||
description: Fixes the data integrity issues for `namespace_id` attribute of `vulnerability_reads` table
|
||||
feature_category: vulnerability_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129244
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: MarkDuplicateNpmPackagesForDestruction
|
|||
description: It seeks duplicate npm packages and marks them for destruction.
|
||||
feature_category: package_registry
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114695
|
||||
milestone: 16.1
|
||||
milestone: '16.1'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: MigrateHumanUserType
|
|||
description: Migrates human user type from old value (nil) to new value (0) for better indexing
|
||||
feature_category: user_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115849
|
||||
milestone: 16.0
|
||||
milestone: '16.0'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: PopulateDenormalizedColumnsForSbomOccurrences
|
|||
description: Populates the denormalized columns for `sbom_occurrences` table.
|
||||
feature_category: dependency_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/129486
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -4,4 +4,4 @@ description: This populates missing dismissal info for vulnerabilities.
|
|||
feature_category: vulnerability_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117478
|
||||
queued_migration_version: 20230412185837
|
||||
milestone: 15.11
|
||||
milestone: '15.11'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: RemoveInvalidDeployAccessLevelGroups
|
|||
description: This deletes protected_environment_deploy_access_levels rows that have invalid group_id.
|
||||
feature_category: continuous_delivery
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/121222
|
||||
milestone: 16.1
|
||||
milestone: '16.1'
|
||||
|
|
|
|||
|
|
@ -5,4 +5,4 @@ description: Security policies are stored as YAML files in the security policy p
|
|||
for all security policy configurations.
|
||||
feature_category: security_policy_management
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/128378
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: UpdateCodeSuggestionsForNamespaceSettings
|
|||
description: Enables Code Suggestions for all namespaces by default
|
||||
feature_category: code_suggestions
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117899
|
||||
milestone: 16.0
|
||||
milestone: '16.0'
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ migration_job_name: UpdateUsersSetExternalIfServiceAccount
|
|||
description: Update external value for users of type Service Account
|
||||
feature_category: system_access
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130597
|
||||
milestone: 16.4
|
||||
milestone: '16.4'
|
||||
|
|
|
|||
|
|
@ -2,4 +2,4 @@ migration_job_name: UpdateWorkspacesConfigVersion
|
|||
description: Update config_version to 2 and force_include_all_resources to true for existing workspaces
|
||||
feature_category: remote_development
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/131402
|
||||
milestone: 16.5
|
||||
milestone: '16.5'
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ table_name: ci_runner_machines
|
|||
classes:
|
||||
- Ci::RunnerManager
|
||||
feature_categories:
|
||||
- runner_fleet
|
||||
- fleet_visibility
|
||||
description: Information about runner managers associated to Ci::Runner models
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/107801
|
||||
milestone: '15.8'
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ table_name: ci_runner_versions
|
|||
classes:
|
||||
- Ci::RunnerVersion
|
||||
feature_categories:
|
||||
- runner_fleet
|
||||
- fleet_visibility
|
||||
description: Information about used Ci::Runner versions
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/90982
|
||||
milestone: '15.2'
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ classes:
|
|||
- Ci::Runner
|
||||
feature_categories:
|
||||
- runner
|
||||
- runner_fleet
|
||||
- fleet_visibility
|
||||
- runner_saas
|
||||
description: Registered CI runners
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/046b28312704f3131e72dcd2dbdacc5264d4aa62
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ classes:
|
|||
- NamespaceCiCdSetting
|
||||
feature_categories:
|
||||
- continuous_integration
|
||||
- runner_fleet
|
||||
- fleet_visibility
|
||||
description: Namespace-scoped settings related to the CI/CD domain
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/86477
|
||||
milestone: '15.0'
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ table_name: p_ci_finished_build_ch_sync_events
|
|||
classes:
|
||||
- Ci::FinishedBuildChSyncEvent
|
||||
feature_categories:
|
||||
- runner_fleet
|
||||
- fleet_visibility
|
||||
description: Holds references to finished CI builds ready to be synced to ClickHouse
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/
|
||||
milestone: '16.5'
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ table_name: p_ci_runner_machine_builds
|
|||
classes:
|
||||
- Ci::RunnerManagerBuild
|
||||
feature_categories:
|
||||
- runner_fleet
|
||||
- fleet_visibility
|
||||
description: Relationships between builds and runner managers
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111476
|
||||
milestone: '15.9'
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ classes:
|
|||
feature_categories:
|
||||
- continuous_integration
|
||||
- continuous_delivery
|
||||
- runner_fleet
|
||||
- fleet_visibility
|
||||
description: Project-scoped settings related to the CI/CD domain
|
||||
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/392c411bdc16386ef42c86afaf8c4d8e4cddb955
|
||||
milestone: '10.8'
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class AddUrlSubFieldsToWorkspace < Gitlab::Database::Migration[2.2]
|
||||
milestone '16.7'
|
||||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
add_column :workspaces, :url_prefix, :text, if_not_exists: true
|
||||
add_column :workspaces, :url_domain, :text, if_not_exists: true
|
||||
add_column :workspaces, :url_query_string, :text, if_not_exists: true
|
||||
|
||||
add_text_limit :workspaces, :url_prefix, 256
|
||||
add_text_limit :workspaces, :url_domain, 256
|
||||
add_text_limit :workspaces, :url_query_string, 256
|
||||
end
|
||||
|
||||
def down
|
||||
remove_column :workspaces, :url_prefix, if_exists: true
|
||||
remove_column :workspaces, :url_domain, if_exists: true
|
||||
remove_column :workspaces, :url_query_string, if_exists: true
|
||||
end
|
||||
end
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue