Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot
2025-06-25 03:07:01 +00:00
parent bcf7c858e1
commit c9c37d5d89
10 changed files with 89 additions and 28 deletions

View File

@ -54,6 +54,14 @@ export default {
`${this.startInNumber} ${this.startInUnit}${plural}`,
);
},
onStartInNumberInput($event) {
this.startInNumber = $event;
this.updateStartIn();
},
onStartInUnitInput($event) {
this.startInUnit = $event;
this.updateStartIn();
},
updateWhen(when) {
this.$emit('update-job', 'rules[0].when', when);
@ -95,23 +103,23 @@ export default {
>
<div class="gl-mt-5 gl-flex">
<gl-form-input
v-model="startInNumber"
:value="startInNumber"
class="gl-mr-3 gl-grow gl-basis-1/2"
data-testid="rules-start-in-number-input"
type="number"
:state="isStartValid"
:class="{ 'gl-invisible': !isDelayed }"
number
@input="updateStartIn"
@input="onStartInNumberInput"
/>
<gl-form-select
v-model="startInUnit"
:value="startInUnit"
class="gl-grow gl-basis-1/2"
data-testid="rules-start-in-unit-select"
:state="isStartValid"
:class="{ 'gl-invisible': !isDelayed }"
:options="$options.unitOptions"
@input="updateStartIn"
@input="onStartInUnitInput"
/>
</div>
</gl-form-group>

View File

@ -7,6 +7,7 @@ import {
GlTableLite,
GlTooltipDirective as GlTooltip,
} from '@gitlab/ui';
import EMPTY_STATE_SVG_URL from '@gitlab/svgs/dist/illustrations/status/status-nothing-md.svg';
import { isEmpty, isEqual } from 'lodash';
import { s__, __ } from '~/locale';
@ -23,6 +24,7 @@ import { WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';
import PaginationBar from '~/vue_shared/components/pagination_bar/pagination_bar.vue';
import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue';
import LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';
import PageHeading from '~/vue_shared/components/page_heading.vue';
import { isFailed, isImporting } from '../utils';
import { DEFAULT_ERROR } from '../utils/error_messages';
@ -53,6 +55,7 @@ export default {
ImportStatus,
TimeAgo,
LocalStorageSync,
PageHeading,
},
directives: {
@ -263,23 +266,21 @@ export default {
gitlabLogo: window.gon.gitlab_logo,
historyPaginationSizePersistKey: HISTORY_PAGINATION_SIZE_PERSIST_KEY,
BULK_IMPORT_STATIC_ITEMS,
EMPTY_STATE_SVG_URL,
};
</script>
<template>
<div>
<h1 class="gl-my-0 gl-flex gl-items-center gl-gap-3 gl-py-4 gl-text-size-h1">
<img :src="$options.gitlabLogo" :alt="__('GitLab Logo')" class="gl-h-6 gl-w-6" />
<span>{{ s__('BulkImport|Migration history') }}</span>
</h1>
<gl-loading-icon v-if="loading" size="lg" class="gl-mt-5" />
<gl-empty-state
v-else-if="!hasHistoryItems"
:svg-path="$options.EMPTY_STATE_SVG_URL"
:title="s__('BulkImport|No history is available')"
:description="s__('BulkImport|Your imported groups and projects appear here.')"
/>
<template v-else>
<page-heading :heading="s__('BulkImport|Migration history')" />
<gl-table-lite :fields="$options.fields" :items="historyItems" class="gl-w-full">
<template #cell(destination_name)="{ item }">
<gl-icon

View File

@ -151,6 +151,7 @@ export default {
workItemNamespace: null,
previewNote: null,
workItemNotes: [],
notesCached: null,
};
},
computed: {
@ -207,8 +208,13 @@ export default {
parentId: this.parentId,
};
},
// On the first component load, we want to show per-page skeleton notes
// On any subsequent refetch, we want to show the cached notes until all notes are loaded
notesSource() {
return this.notesCached ?? this.workItemNotes;
},
notesArray() {
const notes = this.workItemNotes?.nodes || [];
const notes = this.notesSource.nodes || [];
let visibleNotes = collapseSystemNotes(notes);
@ -273,7 +279,7 @@ export default {
});
}
const notes = this.workItemNotes?.nodes || [];
const notes = this.notesSource?.nodes || [];
const n = notes.find(matchingNoteId);
return Boolean(n);
},
@ -347,6 +353,7 @@ export default {
this.fetchMoreNotes();
} else {
this.cleanupScrollListener?.();
this.notesCached = this.workItemNotes;
}
},
subscribeToMore: [
@ -575,7 +582,7 @@ export default {
/>
</ul>
</div>
<work-item-notes-loading v-if="formAtTop && isLoadingMore" />
<work-item-notes-loading v-if="formAtTop && isLoadingMore && !notesCached" />
<ul class="notes main-notes-list timeline">
<template v-for="discussion in notesArray">
<system-note
@ -614,7 +621,7 @@ export default {
<work-item-history-only-filter-note v-if="commentsDisabled" @changeFilter="setFilter" />
</ul>
<work-item-notes-loading v-if="!formAtTop && isLoadingMore" />
<work-item-notes-loading v-if="!formAtTop && isLoadingMore && !notesCached" />
<div v-if="!formAtTop && !commentsDisabled" class="js-comment-form">
<ul class="notes notes-form timeline">
<work-item-add-note

View File

@ -12,6 +12,8 @@ additional_properties:
description: whether tests were selected or full suite was executed
value:
description: number of selected tests
property:
description: whether the mr label is frontend, backend, fullstack or other
product_group: development_analytics
milestone: '17.11'
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/184867

View File

@ -181,13 +181,19 @@ You can define a devfile in the following locations, relative to your project's
- `schemaVersion` must be [`2.2.0`](https://devfile.io/docs/2.2.0/devfile-schema).
- The devfile must have at least one component.
- The devfile size must not exceed 3 MB.
- For `components`:
- Names must not start with `gl-`.
- Only [`container`](#container-component-type) and `volume` are supported.
- For `commands`, IDs must not start with `gl-`.
- For `commands`:
- IDs must not start with `gl-`.
- Only `exec` and `apply` command types are supported.
- For `exec` commands, only the following options are supported: `commandLine`, `component`, `label`, and `hotReloadCapable`.
- When `hotReloadCapable` is specified for `exec` commands, it must be set to `false`.
- For `events`:
- Names must not start with `gl-`.
- Only `preStart` is supported.
- Only `preStart` and [`postStart`](#user-defined-poststart-events) are supported.
- The Devfile standard only allows exec commands to be linked to `postStart` events. If you want an apply command, you must use a `preStart` event.
- `parent`, `projects`, and `starterProjects` are not supported.
- For `variables`, keys must not start with `gl-`, `gl_`, `GL-`, or `GL_`.
- For `attributes`:
@ -212,6 +218,19 @@ The `container` component type supports the following schema properties only:
| `endpoints` | Port mappings to expose from the container. Names must not start with `gl-`. |
| `volumeMounts` | Storage volume to mount in the container. |
### User-defined `postStart` events
You can define custom `postStart` events in your devfile to run commands after the workspace starts. Use this type of event to:
- Set up development dependencies.
- Configure the workspace environment.
- Run initialization scripts.
`postStart` event names must not start with `gl-` and can only reference `exec` type commands.
For an example that shows how to configure `postStart` events,
see the [example configurations](#example-configurations).
### Example configurations
The following is an example devfile configuration:
@ -232,14 +251,31 @@ components:
endpoints:
- name: http-3000
targetPort: 3000
commands:
- id: install-dependencies
exec:
component: tooling-container
commandLine: "npm install"
- id: setup-environment
exec:
component: tooling-container
commandLine: "echo 'Setting up development environment'"
events:
postStart:
- install-dependencies
- setup-environment
```
{{< alert type="note" >}}
This container image is for demonstration purposes only. To use your own container image,
see [Arbitrary user IDs](#arbitrary-user-ids).
{{< /alert >}}
For more information, see the [devfile documentation](https://devfile.io/docs/2.2.0/devfile-schema).
For other examples, see the [`examples` projects](https://gitlab.com/gitlab-org/remote-development/examples).
This container image is for demonstration purposes only.
To use your own container image, see [Arbitrary user IDs](#arbitrary-user-ids).
## Workspace container requirements
By default, workspaces inject and start the [GitLab VS Code fork](https://gitlab.com/gitlab-org/gitlab-web-ide-vscode-fork)

View File

@ -28458,9 +28458,6 @@ msgstr ""
msgid "GitLab KAS"
msgstr ""
msgid "GitLab Logo"
msgstr ""
msgid "GitLab Next|Next"
msgstr ""

View File

@ -63,7 +63,7 @@
"@gitlab/duo-ui": "^8.22.1",
"@gitlab/favicon-overlay": "2.0.0",
"@gitlab/fonts": "^1.3.0",
"@gitlab/query-language-rust": "0.9.0",
"@gitlab/query-language-rust": "0.9.2",
"@gitlab/svgs": "3.134.0",
"@gitlab/ui": "114.7.1",
"@gitlab/vue-router-vue3": "npm:vue-router@4.5.1",

View File

@ -84,10 +84,21 @@ namespace :ci do
logger.info("Following specs were selected for execution: '#{tests_from_mapping}'")
begin
type_of_mr = if mr_labels.include?("frontend") && mr_labels.include?("backend")
"fullstack"
elsif mr_labels.include?("backend")
"backend"
elsif mr_labels.include?("frontend")
"frontend"
else
"other"
end
QA::Tools::Ci::PipelineCreator.new(tests_from_mapping, **creator_args).create(pipelines_for_selective_improved)
properties = {
label: tests_from_mapping.nil? || tests_from_mapping.empty? ? 'non-selective' : 'selective',
value: tests_from_mapping.nil? || tests_from_mapping.empty? ? 0 : tests_from_mapping.count
value: tests_from_mapping.nil? || tests_from_mapping.empty? ? 0 : tests_from_mapping.count,
property: type_of_mr
}
Tooling::Events::TrackPipelineEvents.new(logger: logger).send_event(
"e2e_tests_selected_for_execution_gitlab_pipeline",

View File

@ -57,7 +57,6 @@ spec/frontend/cascading_settings/components/lock_tooltip_spec.js
spec/frontend/ci/artifacts/components/artifacts_bulk_delete_spec.js
spec/frontend/ci/ci_variable_list/components/ci_variable_shared_spec.js
spec/frontend/ci/pipeline_editor/components/header/validation_segment_spec.js
spec/frontend/ci/pipeline_editor/components/job_assistant_drawer/accordion_items/rules_item_spec.js
spec/frontend/ci/pipeline_editor/components/pipeline_editor_tabs_spec.js
spec/frontend/ci/pipeline_editor/pipeline_editor_app_spec.js
spec/frontend/ci/runner/components/registration/runner_instructions/runner_instructions_modal_spec.js

View File

@ -1446,10 +1446,10 @@
resolved "https://registry.yarnpkg.com/@gitlab/noop/-/noop-1.0.1.tgz#71a831146ee02732b4a61d2d3c11204564753454"
integrity sha512-s++4wjMYeDvBp9IO59DBrWjy8SE/gFkjTDO5ck2W0S6Vv7OlqgErwL7pHngAnrSmTJAzyUG8wHGqo0ViS4jn5Q==
"@gitlab/query-language-rust@0.9.0":
version "0.9.0"
resolved "https://registry.yarnpkg.com/@gitlab/query-language-rust/-/query-language-rust-0.9.0.tgz#b00ffe1b2df95fce4a9f159e9099e49035940e3a"
integrity sha512-3kwdxvGPHG8DzYUk400+zCB6ofFuTl6f+rnjnZmhCZuzXm9FfmNqvqj5MS1QHHfLQegGJVCz9FkdUStX5PyGXA==
"@gitlab/query-language-rust@0.9.2":
version "0.9.2"
resolved "https://registry.yarnpkg.com/@gitlab/query-language-rust/-/query-language-rust-0.9.2.tgz#be157dd8232563738ff03182bdc7cad7e6711d0f"
integrity sha512-3X/9Sm0Mz9W9ltI/etkrFfCBk7f2L2p5hwdB7QW9cths2Q1WxXALfhT9XtzBptdw4/wikfXvfvrViSe7bYIJ+w==
"@gitlab/stylelint-config@6.2.2":
version "6.2.2"