Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-08-30 21:07:29 +00:00
parent 41fa0ffbf2
commit c487f26d13
18 changed files with 148 additions and 93 deletions

View File

@ -382,6 +382,7 @@ jest predictive:
- "detect-tests"
script:
- if [[ -s "$RSPEC_CHANGED_FILES_PATH" ]] || [[ -s "$RSPEC_MATCHING_JS_FILES_PATH" ]]; then run_timed_command "yarn jest:ci:predictive-without-fixtures"; fi
parallel: 4
jest-with-fixtures predictive:
extends:

View File

@ -43,7 +43,9 @@ export default {
this.$emit('hidden', ...args);
this.menuVisible = false;
},
strategy: 'fixed',
popperOptions: {
strategy: 'fixed',
},
maxWidth: '400px',
},
}),

View File

@ -701,7 +701,7 @@ export default {
:class="{ 'is-modal': isModal }"
>
<work-item-attributes-wrapper
:class="{ 'gl-top-3': isDrawer }"
:class="{ 'gl-top-11': isDrawer }"
:full-path="workItemFullPath"
:work-item="workItem"
:group-path="groupPath"

View File

@ -88,8 +88,9 @@ export default {
<gl-drawer
:open="open"
data-testid="work-item-drawer"
header-sticky
header-height="calc(var(--top-bar-height) + var(--performance-bar-height))"
class="gl-w-full gl-leading-reset sm:gl-w-4/10"
class="gl-w-full gl-leading-reset lg:gl-w-[480px] xl:gl-w-[768px] min-[1440px]:gl-w-[912px]"
@close="$emit('close')"
>
<template #title>
@ -107,7 +108,7 @@ export default {
:modal-work-item-full-path="activeItemFullPath"
:modal-is-group="modalIsGroup"
is-drawer
class="work-item-drawer !gl-pt-0"
class="work-item-drawer !gl-pt-0 xl:!gl-px-6"
@deleteWorkItem="deleteWorkItem"
v-on="$listeners"
/>

View File

@ -229,7 +229,7 @@ export const FORM_TYPES = {
export const DEFAULT_PAGE_SIZE_NOTES = 30;
export const DEFAULT_PAGE_SIZE_EMOJIS = 100;
export const DEFAULT_PAGE_SIZE_CHILD_ITEMS = 20;
export const DEFAULT_PAGE_SIZE_CHILD_ITEMS = 50;
export const WORK_ITEM_NOTES_SORT_ORDER_KEY = 'sort_direction_work_item';

View File

@ -35,7 +35,7 @@ $work-item-overview-gap-width: 2rem;
}
}
@include container-and-media("max-width: #{calc($breakpoint-md - 0.02px)}") {
@include container-and-media("max-width: #{calc($breakpoint-md - 4rem - 0.02px)}") {
.work-item-overview {
display: block !important;
}

View File

@ -4,8 +4,11 @@ description: >-
This migration deduplicates lfs_objects_projects by lfs_object_id, project_id and repository_type.
After the migration is finalized, we need to add a unique index on all three columns to ensure
data consistency since the unique validation already exists at the model level.
Originally introduced by https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154323
Re-enqueued because we found some duplicates were still being introduced
feature_category: source_code_management
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/154323
milestone: '17.3'
queued_migration_version: 20240808125149
finalize_after: '2024-08-02' # required upgrade stop due date
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164127
milestone: '17.4'
queued_migration_version: 20240827204855
finalize_after: '2024-10-17' # required upgrade stop due date

View File

@ -13,18 +13,12 @@ class QueueDeduplicateLfsObjectsProjects < Gitlab::Database::Migration[2.2]
restrict_gitlab_migration gitlab_schema: :gitlab_main
# To be re-enqueued by db/post_migrate/20240827204855_reenqueue_deduplicate_lfs_objects_projects.rb
def up
queue_batched_background_migration(
MIGRATION,
:lfs_objects_projects,
:id,
job_interval: DELAY_INTERVAL,
batch_size: BATCH_SIZE,
sub_batch_size: SUB_BATCH_SIZE
)
# no-op
end
def down
delete_batched_background_migration(MIGRATION, :lfs_objects_projects, :id, [])
# no-op
end
end

View File

@ -0,0 +1,32 @@
# frozen_string_literal: true
class ReenqueueDeduplicateLfsObjectsProjects < Gitlab::Database::Migration[2.2]
milestone '17.4'
MIGRATION = 'DeduplicateLfsObjectsProjects'
TABLE_NAME = :lfs_objects_projects
DELAY_INTERVAL = 100
BATCH_SIZE = 10_000
SUB_BATCH_SIZE = 2_500
disable_ddl_transaction!
restrict_gitlab_migration gitlab_schema: :gitlab_main
def up
delete_batched_background_migration(MIGRATION, :lfs_objects_projects, :id, [])
queue_batched_background_migration(
MIGRATION,
:lfs_objects_projects,
:id,
job_interval: DELAY_INTERVAL,
batch_size: BATCH_SIZE,
sub_batch_size: SUB_BATCH_SIZE
)
end
def down
delete_batched_background_migration(MIGRATION, :lfs_objects_projects, :id, [])
end
end

View File

@ -0,0 +1 @@
44b6b9fba52b6c7459db0787dbff61678c56c2fc3c51cfab4be32920450b2341

View File

@ -16,7 +16,7 @@ DETAILS:
> - Feature flags `kas_user_access`, `kas_user_access_project`, and `expose_authorized_cluster_agents` [removed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/125835) in GitLab 16.2.
> - [Moved](https://gitlab.com/gitlab-org/gitlab/-/issues/431746) to the environment details page in 16.10.
Use the Dashboard for Kubernetes to understand the status of your clusters with an intuitive visual interface.
Use the dashboard for Kubernetes to understand the status of your clusters with an intuitive visual interface.
The dashboard works with every connected Kubernetes cluster, whether you deployed them
with CI/CD or GitOps.
@ -35,7 +35,7 @@ add one when you create an environment.
Prerequisites:
- A GitLab agent for Kubernetes is [installed](../../user/clusters/agent/install/index.md) and [`user_access`](../../user/clusters/agent/user_access.md) for the environment's project or its parent group.
- A GitLab agent for Kubernetes is [installed](../../user/clusters/agent/install/index.md) and [`user_access`](../../user/clusters/agent/user_access.md) is configured for the environment's project or its parent group.
::Tabs
@ -69,7 +69,7 @@ Prerequisites:
> - Kubernetes watch API integration [enabled by default](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136831) in GitLab 16.7.
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/427762) in GitLab 17.1. Feature flag `k8s_watch_api` removed.
View a dashboard to see the status of any connected clusters.
View a dashboard to see the status of connected clusters.
If the `k8s_watch_api` feature flag is enabled, the status of your
Kubernetes resources and Flux reconciliation updates in real time.
@ -80,6 +80,8 @@ To view a configured dashboard:
1. Select the environment associated with the agent for Kubernetes.
1. Select the **Kubernetes overview** tab.
A list of pods is displayed. Select a pod to view its details.
### Flux sync status
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/391581) in GitLab 16.3.
@ -103,58 +105,39 @@ A dashboard displays one of the following status badges:
| **Unknown** | The sync status of the deployment couldn't be retrieved. |
| **Unavailable** | The `Kustomization` or `HelmRelease` resource couldn't be retrieved. |
## Trigger Flux reconciliation
### Trigger Flux reconciliation
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/434248) in GitLab 17.3.
You can trigger the reconciliation of a Flux recourse (`Kustomization` or `HelmRelease`) manually from the Kubernetes dashboard.
You can manually reconcile your deployment with its Flux resources.
To trigger reconciliation:
To trigger a reconciliation:
1. From a dashboard, select the sync status badge of a Flux deployment.
1. Select **Actions > Trigger reconciliation** (**{retry}**).
1. On a dashboard, select the sync status badge of a Flux deployment.
1. Select **Actions** (**{ellipsis_v}**) **> Trigger reconciliation** (**{retry}**).
## Delete a pod
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/467653) in GitLab 17.3.
You can delete a pod from the Kubernetes dashboard to restart a failed pod.
To delete a pod:
::Tabs
:::TabTitle From the pods list
- Select **Actions** (**{ellipsis_v}**), then **Delete pod**.
:::TabTitle From the pods details view
1. Select a pod from the pod list to view its details.
1. Select **Actions > Delete pod** (**{remove}**).
::EndTabs
## View pod logs
### View pod logs
> - [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/13793) in GitLab 17.2.
View pod logs when you want to quickly understand and troubleshoot issues across your environments from a configured dashboard. You can view logs for each container in a pod.
To view your pod logs:
::Tabs
:::TabTitle From the pods list
- Select **View logs**, then select the container you want to view logs for.
:::TabTitle From the pods details view
You can also view pod logs from the pod details.
1. Select a pod from the pod list to view its details.
1. Select the container you want to view logs for, then select **View logs**.
### Delete a pod
::EndTabs
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/467653) in GitLab 17.3.
To restart a failed pod, delete it from the Kubernetes dashboard.
To delete a pod:
1. On the **Kubernetes overview** tab, find the pod you want to delete.
1. Select **Actions** (**{ellipsis_v}**) **> Delete pod** (**{remove}**).
You can also delete a pod from the pod details.
## Detailed dashboard
@ -213,11 +196,9 @@ To view a detailed dashboard:
| Jobs | `https://myinstance.gitlab.com/-/kubernetes/<agent_id>/jobs` |
| CronJobs | `https://myinstance.gitlab.com/-/kubernetes/<agent_id>/cronJobs` |
The detailed dashboard is displayed.
## Troubleshooting
When working with the Dashboard for Kubernetes, you might encounter the following issues.
When working with the dashboard for Kubernetes, you might encounter the following issues.
### User cannot list resource in API group

View File

@ -237,7 +237,7 @@ considered equivalent to rebasing.
### Rebase without CI/CD pipeline
> - [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/350262) in GitLab 15.3. Feature flag `rebase_without_ci_ui` removed.
> - Changed to [Generally available](https://gitlab.com/gitlab-org/gitlab/-/issues/350262) in GitLab 15.3. Feature flag `rebase_without_ci_ui` removed.
To rebase a merge request's branch without triggering a CI/CD pipeline, select
**Rebase without pipeline** from the merge request reports section.

View File

@ -97,8 +97,7 @@ module Gitlab
return organization if organization
logger.info(message: 'Creating organization', **args)
ensure_success(::Organizations::CreateService.new(current_user: @user, params: args).execute[:organization])
execute_service!(::Organizations::CreateService.new(current_user: @user, params: args), :organization)
end
def create_groups_and_projects
@ -182,7 +181,7 @@ module Gitlab
def create_group(**args)
logger.info(message: 'Creating group', **args)
ensure_success(::Groups::CreateService.new(@user, **args).execute[:group])
execute_service!(::Groups::CreateService.new(@user, **args), :group)
end
def ensure_project(name:, namespace_id:, **args)
@ -198,7 +197,7 @@ module Gitlab
def create_project(**args)
logger.info(message: 'Creating project', **args)
ensure_success(::Projects::CreateService.new(@user, **args).execute)
execute_service!(::Projects::CreateService.new(@user, **args))
end
def register_record(record, records)
@ -214,6 +213,17 @@ module Gitlab
raise RuntimeError
end
def execute_service!(service, payload_attr = nil)
response = service.execute
if response.is_a?(ServiceResponse) && response.error?
logger.error(response.message)
raise RuntimeError
end
record = payload_attr ? response[payload_attr] : response
ensure_success(record)
end
def create_runner(name:, scope: nil, **args)
name = generate_name(name)

View File

@ -20137,18 +20137,18 @@ msgstr ""
msgid "DuoProTrial|Apply your GitLab Duo Pro trial to an existing group"
msgstr ""
msgid "DuoProTrial|Chat"
msgid "DuoProTrial|Chat within the IDE"
msgstr ""
msgid "DuoProTrial|Code Explanation"
msgstr ""
msgid "DuoProTrial|Code Refactoring"
msgstr ""
msgid "DuoProTrial|Code completion and code generation with Code Suggestions"
msgstr ""
msgid "DuoProTrial|Code explanation"
msgstr ""
msgid "DuoProTrial|Code refactorization"
msgstr ""
msgid "DuoProTrial|Congratulations, your free GitLab Duo Pro trial is activated and will expire on %{exp_date}. The new license might take a minute to show on the page. To give members access to new GitLab Duo Pro features, %{assign_link_start}assign them%{assign_link_end} to GitLab Duo Pro seats."
msgstr ""
@ -20173,7 +20173,7 @@ msgstr ""
msgid "DuoProTrial|Looking to do more with AI?"
msgstr ""
msgid "DuoProTrial|Organizational controls"
msgid "DuoProTrial|Organizational user controls"
msgstr ""
msgid "DuoProTrial|Purchase now"
@ -20188,7 +20188,7 @@ msgstr ""
msgid "DuoProTrial|Start your free GitLab Duo Pro trial"
msgstr ""
msgid "DuoProTrial|Test generation"
msgid "DuoProTrial|Test Generation"
msgstr ""
msgid "DuoProTrial|To regain access to features like Code Suggestions and Chat, purchase the subscription add-on for GitLab Duo Pro."
@ -55620,6 +55620,9 @@ msgstr ""
msgid "This stage has one or more manual jobs that require confirmation before retrying. Do you want to proceed?"
msgstr ""
msgid "This subscription is for"
msgstr ""
msgid "This suggestion already matches its content."
msgstr ""

View File

@ -64,7 +64,9 @@ describe('content_editor/components/bubble_menus/bubble_menu', () => {
tippyOptions: expect.objectContaining({
onHidden: expect.any(Function),
onShow: expect.any(Function),
strategy: 'fixed',
popperOptions: {
strategy: 'fixed',
},
maxWidth: '400px',
...tippyOptions,
}),

View File

@ -91,5 +91,17 @@ RSpec.describe ::Gitlab::Seeders::Ci::Runner::RunnerFleetSeeder, feature_categor
expect { seed }.not_to change { Ci::Runner.count }
end
end
context 'when organization cannot be created' do
before do
allow_next_instance_of(::Organizations::CreateService, current_user: user, params: anything) do |service|
allow(service).to receive(:execute).and_return(ServiceResponse.error(message: 'test error'))
end
end
it 'raises RuntimeError' do
expect { seed }.to raise_error(RuntimeError)
end
end
end
end

View File

@ -4,23 +4,10 @@ require 'spec_helper'
require_migration!
RSpec.describe QueueDeduplicateLfsObjectsProjects, feature_category: :source_code_management do
let!(:batched_migration) { described_class::MIGRATION }
let(:batched_migration) { described_class::MIGRATION }
it 'schedules a new batched migration' do
reversible_migration do |migration|
migration.before -> {
expect(batched_migration).not_to have_scheduled_batched_migration
}
migration.after -> {
expect(batched_migration).to have_scheduled_batched_migration(
table_name: :lfs_objects_projects,
column_name: :id,
batch_class_name: described_class::BATCH_CLASS_NAME,
batch_size: described_class::BATCH_SIZE,
sub_batch_size: described_class::SUB_BATCH_SIZE
)
}
end
migrate!
expect(batched_migration).not_to have_scheduled_batched_migration
end
end

View File

@ -0,0 +1,26 @@
# frozen_string_literal: true
require 'spec_helper'
require_migration!
RSpec.describe ReenqueueDeduplicateLfsObjectsProjects, feature_category: :source_code_management do
let(:batched_migration) { described_class::MIGRATION }
it 'schedules a new batched migration' do
reversible_migration do |migration|
migration.before -> {
expect(batched_migration).not_to have_scheduled_batched_migration
}
migration.after -> {
expect(batched_migration).to have_scheduled_batched_migration(
table_name: :lfs_objects_projects,
column_name: :id,
batch_class_name: described_class::BATCH_CLASS_NAME,
batch_size: described_class::BATCH_SIZE,
sub_batch_size: described_class::SUB_BATCH_SIZE
)
}
end
end
end