Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2025-03-19 03:07:18 +00:00
parent 6cb6b7cb84
commit e05b0d1254
61 changed files with 177 additions and 138 deletions

View File

@ -1 +1 @@
6f47120a08b8ac23dfe5303feec42b109fc2f3ff
db3ec43472f41609c94a3f0cf5382b26360638e1

View File

@ -24,7 +24,7 @@ export default {
<gl-sprintf
:message="
s__(
`ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. Push at least one Docker image in one of this group's projects in order to show up here. %{docLinkStart}More Information%{docLinkEnd}`,
`ContainerRegistry|With the container registry, every project can have its own space to store its Docker images. Push at least one Docker image in one of this group's projects in order to show up here. %{docLinkStart}More Information%{docLinkEnd}`,
)
"
>

View File

@ -27,10 +27,10 @@ export default {
copyBuildTitle: COPY_BUILD_TITLE,
copyPushTitle: COPY_PUSH_TITLE,
introText: s__(
`ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}`,
`ContainerRegistry|With the container registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}`,
),
notLoggedInMessage: s__(
`ContainerRegistry|If you are not already logged in, you need to authenticate to the Container Registry by using your GitLab username and password. If you have %{twofaDocLinkStart}Two-Factor Authentication%{twofaDocLinkEnd} enabled, use a %{personalAccessTokensDocLinkStart}personal access token%{personalAccessTokensDocLinkEnd} instead of a password.`,
`ContainerRegistry|If you are not already logged in, you need to authenticate to the container registry by using your GitLab username and password. If you have %{twofaDocLinkStart}Two-Factor Authentication%{twofaDocLinkEnd} enabled, use a %{personalAccessTokensDocLinkStart}personal access token%{personalAccessTokensDocLinkEnd} instead of a password.`,
),
addImageText: s__(
'ContainerRegistry|You can add an image to this registry with the following commands:',

View File

@ -3,11 +3,11 @@ import { NAME_SORT_FIELD } from './common';
// Translations strings
export const CONTAINER_REGISTRY_TITLE = s__('ContainerRegistry|Container Registry');
export const CONTAINER_REGISTRY_TITLE = s__('ContainerRegistry|Container registry');
export const SETTINGS_TEXT = s__('ContainerRegistry|Configure in settings');
export const CONNECTION_ERROR_TITLE = s__('ContainerRegistry|Docker connection error');
export const CONNECTION_ERROR_MESSAGE = s__(
`ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}.`,
`ContainerRegistry|We are having trouble connecting to the container registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}.`,
);
export const LIST_DELETE_BUTTON_DISABLED = s__(
'ContainerRegistry|Missing or insufficient permission, delete button disabled',

View File

@ -47,7 +47,7 @@ export default {
<gl-sprintf
:message="
s__(
'ContainerRegistry|The %{linkStart}GitLab Container Registry%{linkEnd} is a secure and private registry for container images. Its built on open source software and completely integrated within GitLab. Use GitLab CI/CD to create and publish images. Use the GitLab API to manage the registry across groups and projects.',
'ContainerRegistry|The %{linkStart}GitLab container registry%{linkEnd} is a secure and private registry for container images. Its built on open source software and completely integrated within GitLab. Use GitLab CI/CD to create and publish images. Use the GitLab API to manage the registry across groups and projects.',
)
"
>

View File

@ -30,13 +30,13 @@ export default {
},
},
i18n: {
containerRegistry: s__('UsageQuota|Container Registry'),
containerRegistry: s__('UsageQuota|Container registry'),
storageUsed: s__('UsageQuota|Storage used'),
containerRegistryDescription: s__(
'UsageQuota|Gitlab-integrated Docker Container Registry for storing Docker Images.',
'UsageQuota|Gitlab-integrated Docker container registry for storing Docker Images.',
),
estimatedWarningTooltip: s__(
'UsageQuota|Precise calculation of Container Registry storage size is delayed because it is too large for synchronous estimation. Precise evaluation will be scheduled within 24 hours.',
'UsageQuota|Precise calculation of container registry storage size is delayed because it is too large for synchronous estimation. Precise evaluation will be scheduled within 24 hours.',
),
},
};

View File

@ -132,7 +132,7 @@ export default {
/><storage-type-warning v-if="field.key == 'containerRegistry'">
{{
s__(
'UsageQuotas|Container Registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total.',
'UsageQuotas|Container registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total.',
)
}}
<gl-link :href="$options.containerRegistryDocsLink" target="_blank">

View File

@ -42,7 +42,7 @@ export default {
<p>
{{
s__(
'UsageQuota|Namespace total storage represents the sum of storage consumed by all projects, Container Registry, and Dependency Proxy.',
'UsageQuota|Namespace total storage represents the sum of storage consumed by all projects, container registry, and Dependency Proxy.',
)
}}
</p>

View File

@ -36,13 +36,13 @@ export const PROJECT_STORAGE_TYPES = [
export const NAMESPACE_STORAGE_TYPES = [
{
id: 'containerRegistry',
name: __('Container Registry'),
name: __('Container registry'),
description: s__(
`UsageQuota|Gitlab-integrated Docker Container Registry for storing Docker Images.`,
`UsageQuota|Gitlab-integrated Docker container registry for storing Docker Images.`,
),
warning: {
popoverContent: s__(
'UsageQuotas|Container Registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total.',
'UsageQuotas|Container registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total.',
),
},
},

View File

@ -95,7 +95,7 @@ module Resolvers
def tags
container_repository.tags
rescue Faraday::Error
raise ::Gitlab::Graphql::Errors::ResourceNotAvailable, "Can't connect to the Container Registry. If this error persists, please review the troubleshooting documentation."
raise ::Gitlab::Graphql::Errors::ResourceNotAvailable, "Can't connect to the container registry. If this error persists, please review the troubleshooting documentation."
end
end
end

View File

@ -60,7 +60,7 @@ module Types
yield
rescue Faraday::Error
raise_resource_not_available_error!(
"Can't connect to the Container Registry. " \
"Can't connect to the container registry. " \
'If this error persists, please review the troubleshooting documentation.'
)
end

View File

@ -56,7 +56,7 @@ module Types
object.tags_count
rescue Faraday::Error
raise_resource_not_available_error!(
'We are having trouble connecting to the Container Registry. ' \
'We are having trouble connecting to the container registry. ' \
'If this error persists, please review the troubleshooting documentation.'
)
end

View File

@ -14,7 +14,7 @@ module Types
field :container_registry_size,
GraphQL::Types::Float,
null: true,
description: 'Container Registry size of the project in bytes.'
description: 'Container registry size of the project in bytes.'
field :lfs_objects_size,
GraphQL::Types::Float,
null: false,

View File

@ -855,7 +855,7 @@ module Types
merge_requests: "Merge requests are",
wiki: 'Wikis are',
snippets: 'Snippets are',
container_registry: 'Container Registry is'
container_registry: 'Container registry is'
}.each do |feature, name_string|
field "#{feature}_enabled", GraphQL::Types::Boolean, null: true,
description: "Indicates if #{name_string} enabled for the current user"

View File

@ -7,9 +7,9 @@ module Types
authorize :read_statistics
field :build_artifacts_size, GraphQL::Types::Float, null: false, description: 'CI artifacts size in bytes.'
field :container_registry_size, GraphQL::Types::Float, null: false, description: 'Container Registry size in bytes.'
field :container_registry_size, GraphQL::Types::Float, null: false, description: 'Container registry size in bytes.'
field :container_registry_size_is_estimated, GraphQL::Types::Boolean, method: :registry_size_estimated, null: false,
description: 'Indicates whether the deduplicated Container Registry size for ' \
description: 'Indicates whether the deduplicated container registry size for ' \
'the namespace is an estimated value or not.'
field :dependency_proxy_size, GraphQL::Types::Float, null: false, description: 'Dependency Proxy sizes in bytes.'
field :lfs_objects_size, GraphQL::Types::Float, null: false, description: 'LFS objects size in bytes.'
@ -19,7 +19,7 @@ module Types
field :registry_size_estimated, GraphQL::Types::Boolean,
null: false,
deprecated: { reason: 'Use `container_registry_size_is_estimated`', milestone: '16.2' },
description: 'Indicates whether the deduplicated Container Registry size for ' \
description: 'Indicates whether the deduplicated container registry size for ' \
'the namespace is an estimated value or not.'
field :repository_size, GraphQL::Types::Float, null: false, description: 'Git repository size in bytes.'
field :snippets_size, GraphQL::Types::Float, null: false, description: 'Snippets size in bytes.'

View File

@ -274,7 +274,7 @@ module Groups
group_is_already_root: s_('TransferGroup|Group is already a root group.'),
same_parent_as_current: s_('TransferGroup|Group is already associated to the parent group.'),
invalid_policies: s_("TransferGroup|You don't have enough permissions."),
group_contains_images: s_('TransferGroup|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again.'),
group_contains_images: s_('TransferGroup|Cannot update the path because there are projects under this group that contain Docker images in their container registry. Please remove the images from your projects first and try again.'),
cannot_transfer_to_subgroup: s_('TransferGroup|Cannot transfer group to one of its subgroup.'),
group_contains_namespaced_npm_packages: s_('TransferGroup|Group contains projects with NPM packages scoped to the current root level group.'),
no_permissions_to_migrate_crm: s_("TransferGroup|Group contains contacts/organizations and you don't have enough permissions to move them to the new root group.")

View File

@ -105,7 +105,7 @@ module Groups
end
def container_images_error
s_("GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again.")
s_("GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their container registry. Please remove the images from your projects first and try again.")
end
def after_update

View File

@ -8,7 +8,7 @@
.form-group
- label = _("Enable cleanup policies for projects created earlier than GitLab 12.7.")
- label_link = link_to sprite_icon('question-o'), help_page_path('user/packages/container_registry/reduce_container_registry_storage.md', anchor: 'cleanup-policy')
- help_text = _("Existing projects will be able to use cleanup policies. Avoid enabling this if an external Container Registry is being used, as there is a performance risk if many images exist on one project.")
- help_text = _("Existing projects will be able to use cleanup policies. Avoid enabling this if an external container registry is being used, as there is a performance risk if many images exist on one project.")
- help_link = link_to sprite_icon('question-o'), help_page_path('user/packages/container_registry/reduce_container_registry_storage.md', anchor: 'use-with-external-container-registries')
= f.gitlab_ui_checkbox_component :container_expiration_policies_enable_historic_entries,
'%{label} %{label_link}'.html_safe % { label: label, label_link: label_link },

View File

@ -31,7 +31,7 @@
= render_if_exists 'admin/application_settings/package_registry', expanded: expanded_by_default?
- if Gitlab.config.registry.enabled
= render ::Layouts::SettingsBlockComponent.new(_('Container Registry'),
= render ::Layouts::SettingsBlockComponent.new(_('Container registry'),
id: 'js-registry-settings',
testid: 'registry-settings',
expanded: expanded_by_default?) do |c|

View File

@ -121,7 +121,7 @@
= render_if_exists 'admin/dashboard/elastic_and_geo'
= feature_entry(_('Container Registry'),
= feature_entry(_('Container registry'),
href: ci_cd_admin_application_settings_path(anchor: 'js-registry-settings'),
enabled: Gitlab.config.registry.enabled)

View File

@ -1,4 +1,4 @@
- page_title _("Container Registry")
- page_title _("Container registry")
- add_page_startup_graphql_call('container_registry/get_container_repositories', { fullPath: @group.full_path, first: 10, name: nil, isGroupPage: true, sort: nil})
%section

View File

@ -12,10 +12,14 @@
= f.submit _('Save changes'), pajamas_button: true
- if group.root?
.gl-mb-5
= render Pajamas::AlertComponent.new(variant: :warning, dismissible: false) do |c|
- c.with_body do
= s_('GroupSettings|Unless manually disabled, this setting will be automatically enabled in GitLab 18.0. This setting is scheduled to be removed in GitLab 18.3, and the JWT format will be used by all job tokens.')
= link_to _('Learn more.'), help_page_path('ci/jobs/ci_job_token.md', anchor: 'use-legacy-format-for-cicd-tokens'), target: '_blank', rel: 'noopener noreferrer'
.gl-mb-5
= gitlab_ui_form_for group, url: group_settings_ci_cd_path(group, anchor: 'js-general-pipeline-settings') do |f|
= f.hidden_field :jwt_ci_cd_job_token_enabled, class: 'js-jwt-ci-cd-job-token-enabled-input', value: group.jwt_ci_cd_job_token_enabled?
= render Pajamas::ToggleComponent.new(classes: 'js-jwt-ci-cd-job-token-enabled-toggle',
label: s_('GroupSettings|Enable JWT format for CI/CD job tokens'),
is_checked: group.jwt_ci_cd_job_token_enabled?) do
= s_('GroupSettings|Enable JWT format for the CI_JOB_TOKEN variable. When disabled, it uses the legacy database format.')
= link_to _('Learn more.'), help_page_path('ci/jobs/ci_job_token.md'), target: '_blank', rel: 'noopener noreferrer'

View File

@ -1,4 +1,4 @@
- page_title _("Container Registry")
- page_title _("Container registry")
- add_page_startup_graphql_call('container_registry/get_container_repositories', { fullPath: @project.full_path, first: 10, name: nil, isGroupPage: false, sort: nil})
%section

View File

@ -8,14 +8,6 @@ description: Stores merge request approvals made by users
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/commit/73faf3c7289c4fa4535b752a12247ee74b173976
milestone: '7.12'
gitlab_schema: gitlab_main_cell
desired_sharding_key:
project_id:
references: projects
backfill_via:
parent:
foreign_key: merge_request_id
table: merge_requests
sharding_key: target_project_id
belongs_to: merge_request
desired_sharding_key_migration_job_name: BackfillApprovalsProjectId
sharding_key:
project_id: projects
table_size: small

View File

@ -0,0 +1,13 @@
# frozen_string_literal: true
class ValidateApprovalsProjectIdNotNullConstraint < Gitlab::Database::Migration[2.2]
milestone '17.11'
def up
validate_not_null_constraint :approvals, :project_id
end
def down
# no-op
end
end

View File

@ -0,0 +1 @@
6995c623aab5d20a319dd0ac86b3629d58b3fd97b5d626e10e4307294c9b06b6

View File

@ -9116,7 +9116,8 @@ CREATE TABLE approvals (
created_at timestamp without time zone,
updated_at timestamp without time zone,
patch_id_sha bytea,
project_id bigint
project_id bigint,
CONSTRAINT check_9da7c942dc CHECK ((project_id IS NOT NULL))
);
CREATE SEQUENCE approvals_id_seq
@ -27967,9 +27968,6 @@ ALTER TABLE ONLY project_type_ci_runners
ALTER TABLE ONLY group_type_ci_runners
ADD CONSTRAINT check_81b90172a6 UNIQUE (id);
ALTER TABLE approvals
ADD CONSTRAINT check_9da7c942dc CHECK ((project_id IS NOT NULL)) NOT VALID;
ALTER TABLE sprints
ADD CONSTRAINT check_ccd8a1eae0 CHECK ((start_date IS NOT NULL)) NOT VALID;

View File

@ -1372,7 +1372,7 @@ In some situations, it may be helpful to test object storage settings using the
connection = Fog::Storage.new(
{
provider: 'AWS',
region: `eu-central-1`,
region: 'eu-central-1',
aws_access_key_id: '<AWS_ACCESS_KEY_ID>',
aws_secret_access_key: '<AWS_SECRET_ACCESS_KEY>'
}

View File

@ -55,7 +55,7 @@ but it's not recommended and is beyond the scope of this document.
### Helm Charts installations
For Helm Charts installations, see [Using the Container Registry](https://docs.gitlab.com/charts/charts/registry/).
For Helm Charts installations, see [Using the container registry](https://docs.gitlab.com/charts/charts/registry/).
in the Helm Charts documentation.
### Self-compiled installations

View File

@ -10373,7 +10373,7 @@ Input type: `SecurityTrainingUpdateInput`
### `Mutation.setContainerScanningForRegistry`
Enable/disable Container Scanning on Container Registry for the given project.
Enable/disable Container Scanning on container registry for the given project.
Input type: `SetContainerScanningForRegistryInput`
@ -10382,7 +10382,7 @@ Input type: `SetContainerScanningForRegistryInput`
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="mutationsetcontainerscanningforregistryclientmutationid"></a>`clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. |
| <a id="mutationsetcontainerscanningforregistryenable"></a>`enable` | [`Boolean!`](#boolean) | Desired status for Container Scanning on Container Registry feature. |
| <a id="mutationsetcontainerscanningforregistryenable"></a>`enable` | [`Boolean!`](#boolean) | Desired status for Container Scanning on container registry feature. |
| <a id="mutationsetcontainerscanningforregistrynamespacepath"></a>`namespacePath` | [`ID!`](#id) | Full path of the namespace (project). |
#### Fields
@ -34044,7 +34044,7 @@ Project-level settings for product analytics provider.
| <a id="projectcontainerexpirationpolicy"></a>`containerExpirationPolicy` {{< icon name="warning-solid" >}} | [`ContainerExpirationPolicy`](#containerexpirationpolicy) | **Deprecated** in GitLab 17.5. Use `container_tags_expiration_policy`. |
| <a id="projectcontainerprotectionrepositoryrules"></a>`containerProtectionRepositoryRules` {{< icon name="warning-solid" >}} | [`ContainerProtectionRepositoryRuleConnection`](#containerprotectionrepositoryruleconnection) | **Introduced** in GitLab 16.10. **Status**: Experiment. Container protection rules for the project. |
| <a id="projectcontainerprotectiontagrules"></a>`containerProtectionTagRules` {{< icon name="warning-solid" >}} | [`ContainerProtectionTagRuleConnection`](#containerprotectiontagruleconnection) | **Introduced** in GitLab 17.8. **Status**: Experiment. Container repository tag protection rules for the project. Returns an empty array if the `container_registry_protected_tags` feature flag is disabled. |
| <a id="projectcontainerregistryenabled"></a>`containerRegistryEnabled` | [`Boolean`](#boolean) | Indicates if Container Registry is enabled for the current user. |
| <a id="projectcontainerregistryenabled"></a>`containerRegistryEnabled` | [`Boolean`](#boolean) | Indicates if Container registry is enabled for the current user. |
| <a id="projectcontainerrepositoriescount"></a>`containerRepositoriesCount` | [`Int!`](#int) | Number of container repositories in the project. |
| <a id="projectcontainertagsexpirationpolicy"></a>`containerTagsExpirationPolicy` | [`ContainerTagsExpirationPolicy`](#containertagsexpirationpolicy) | Container tags expiration policy of the project. |
| <a id="projectcorpuses"></a>`corpuses` | [`CoverageFuzzingCorpusConnection`](#coveragefuzzingcorpusconnection) | Find corpuses of the project. (see [Connections](#connections)) |
@ -36585,7 +36585,7 @@ Represents the source of a security policy belonging to a project.
| ---- | ---- | ----------- |
| <a id="projectstatisticsbuildartifactssize"></a>`buildArtifactsSize` | [`Float!`](#float) | Build artifacts size of the project in bytes. |
| <a id="projectstatisticscommitcount"></a>`commitCount` | [`Float!`](#float) | Commit count of the project. |
| <a id="projectstatisticscontainerregistrysize"></a>`containerRegistrySize` | [`Float`](#float) | Container Registry size of the project in bytes. |
| <a id="projectstatisticscontainerregistrysize"></a>`containerRegistrySize` | [`Float`](#float) | Container registry size of the project in bytes. |
| <a id="projectstatisticscostfactoredbuildartifactssize"></a>`costFactoredBuildArtifactsSize` {{< icon name="warning-solid" >}} | [`Float!`](#float) | **Introduced** in GitLab 16.6. **Status**: Experiment. Build artifacts size in bytes with any applicable cost factor for forks applied. This will equal build_artifacts_size if there is no applicable cost factor. |
| <a id="projectstatisticscostfactoredlfsobjectssize"></a>`costFactoredLfsObjectsSize` {{< icon name="warning-solid" >}} | [`Float!`](#float) | **Introduced** in GitLab 16.6. **Status**: Experiment. LFS objects size in bytes with any applicable cost factor for forks applied. This will equal lfs_objects_size if there is no applicable cost factor. |
| <a id="projectstatisticscostfactoredpackagessize"></a>`costFactoredPackagesSize` {{< icon name="warning-solid" >}} | [`Float!`](#float) | **Introduced** in GitLab 16.6. **Status**: Experiment. Packages size in bytes with any applicable cost factor for forks applied. This will equal packages_size if there is no applicable cost factor. |
@ -37333,8 +37333,8 @@ Resource quotas of a workspace.
| Name | Type | Description |
| ---- | ---- | ----------- |
| <a id="rootstoragestatisticsbuildartifactssize"></a>`buildArtifactsSize` | [`Float!`](#float) | CI artifacts size in bytes. |
| <a id="rootstoragestatisticscontainerregistrysize"></a>`containerRegistrySize` | [`Float!`](#float) | Container Registry size in bytes. |
| <a id="rootstoragestatisticscontainerregistrysizeisestimated"></a>`containerRegistrySizeIsEstimated` | [`Boolean!`](#boolean) | Indicates whether the deduplicated Container Registry size for the namespace is an estimated value or not. |
| <a id="rootstoragestatisticscontainerregistrysize"></a>`containerRegistrySize` | [`Float!`](#float) | Container registry size in bytes. |
| <a id="rootstoragestatisticscontainerregistrysizeisestimated"></a>`containerRegistrySizeIsEstimated` | [`Boolean!`](#boolean) | Indicates whether the deduplicated container registry size for the namespace is an estimated value or not. |
| <a id="rootstoragestatisticscostfactoredstoragesize"></a>`costFactoredStorageSize` {{< icon name="warning-solid" >}} | [`Float!`](#float) | **Introduced** in GitLab 16.2. **Status**: Experiment. Total storage in bytes with any applicable cost factor for forks applied. This will equal storage_size if there is no applicable cost factor. |
| <a id="rootstoragestatisticsdependencyproxysize"></a>`dependencyProxySize` | [`Float!`](#float) | Dependency Proxy sizes in bytes. |
| <a id="rootstoragestatisticslfsobjectssize"></a>`lfsObjectsSize` | [`Float!`](#float) | LFS objects size in bytes. |

View File

@ -553,3 +553,26 @@ While troubleshooting CI/CD job token authentication issues, be aware that:
- To remove project access.
- The CI job token becomes invalid if the job is no longer running, has been erased,
or if the project is in the process of being deleted.
### JWT format job token errors
There are some known issues with the JWT format for CI/CD job tokens.
#### `Error when persisting the task ARN.` error with EC2 Fargate Runner custom executor
There is [a bug](https://gitlab.com/gitlab-org/ci-cd/custom-executor-drivers/fargate/-/issues/86)
in version `0.5.0` and earlier of the EC2 Fargate custom executor. This issue causes this error:
- `Error when persisting the task ARN. Will stop the task for cleanup`
To fix this issue, upgrade to version `0.5.1` or later of the Fargate custom executor.
#### `invalid character '\n' in string literal` error with `base64` encoding
If you use `base64` to encode job tokens, you could receive an `invalid character '\n'` error.
The default behavior of the `base64` command wraps strings that are longer than 79 characters.
When `base64` encoding JWT format job tokens during job execution, for example with
`echo $CI_JOB_TOKEN | base64`, the token is rendered invalid.
To fix this issue, use `base64 -w0` to disable automatically wrapping the token.

View File

@ -259,8 +259,7 @@ from your migration:
queue_batched_background_migration(
JOB_CLASS_NAME,
TABLE_NAME,
JOB_ARGUMENTS,
JOB_INTERVAL
JOB_ARGUMENTS
)
```
@ -395,7 +394,6 @@ class RequeueResolveVulnerabilitiesForRemovedAnalyzers < Gitlab::Database::Migra
restrict_gitlab_migration gitlab_schema: :gitlab_main
MIGRATION = "ResolveVulnerabilitiesForRemovedAnalyzers"
DELAY_INTERVAL = 2.minutes
BATCH_SIZE = 10_000
SUB_BATCH_SIZE = 100
@ -407,7 +405,6 @@ class RequeueResolveVulnerabilitiesForRemovedAnalyzers < Gitlab::Database::Migra
MIGRATION,
:vulnerability_reads,
:id,
job_interval: DELAY_INTERVAL,
batch_size: BATCH_SIZE,
sub_batch_size: SUB_BATCH_SIZE
)
@ -441,7 +438,7 @@ A batched background migration in running state can be stopped and removed for s
- When the migration is no longer relevant or required as the product use case changed.
- The migration has to be superseded with another migration with a different logic.
To stop and remove an inprogress batched background migration, you must:
To stop and remove an in-progress batched background migration, you must:
- In Release N, No-op the contents of the `#up` and `#down` methods of the scheduling database migration.
@ -454,13 +451,13 @@ class BackfillNamespaceType < Gitlab::Database::Migration[2.1]
end
```
- In Release N, add a regular migration, to delete the existing batched migration. Delete the existing batched background migration using the `delete_batched_background_migration` method at the start of the `#up` method to ensure that any existing runs are cleaned up.
- In Release N, add a regular migration, to delete the existing batched migration.
Delete the existing batched background migration using the `delete_batched_background_migration` method at the
start of the `#up` method to ensure that any existing runs are cleaned up.
```ruby
class CleanupBackfillNamespaceType < Gitlab::Database::Migration[2.1]
MIGRATION = "MyMigrationClass"
DELAY_INTERVAL = 2.minutes
BATCH_SIZE = 50_000
restrict_gitlab_migration gitlab_schema: :gitlab_main
@ -468,9 +465,7 @@ class CleanupBackfillNamespaceType < Gitlab::Database::Migration[2.1]
delete_batched_background_migration(MIGRATION, :vulnerabilities, :id, [])
end
def down
delete_batched_background_migration(MIGRATION, :vulnerabilities, :id, [])
end
def down; end
end
```
@ -488,8 +483,7 @@ Batched migrations scheduled with `queue_batched_background_migration` **must**
queue_batched_background_migration(
'CopyColumnUsingBackgroundMigrationJob',
TABLE_NAME,
'name', 'name_convert_to_text',
job_interval: DELAY_INTERVAL
'name', 'name_convert_to_text'
)
```
@ -596,7 +590,6 @@ as the batching strategy.
```ruby
class BackfillNamespaceType < Gitlab::Database::Migration[2.1]
MIGRATION = 'BackfillNamespaceType'
DELAY_INTERVAL = 2.minutes
restrict_gitlab_migration gitlab_schema: :gitlab_main
@ -604,8 +597,7 @@ as the batching strategy.
queue_batched_background_migration(
MIGRATION,
:namespaces,
:id,
job_interval: DELAY_INTERVAL
:id
)
end
@ -679,7 +671,6 @@ Database post-migration:
```ruby
class ProjectsWithIssuesMigration < Gitlab::Database::Migration[2.1]
MIGRATION = 'BatchProjectsWithIssues'
INTERVAL = 2.minutes
BATCH_SIZE = 5000
SUB_BATCH_SIZE = 500
restrict_gitlab_migration gitlab_schema: :gitlab_main
@ -690,7 +681,6 @@ class ProjectsWithIssuesMigration < Gitlab::Database::Migration[2.1]
MIGRATION,
:issues,
:project_id,
job_interval: INTERVAL,
batch_size: BATCH_SIZE,
batch_class_name: 'LooseIndexScanBatchingStrategy', # Override the default batching strategy
sub_batch_size: SUB_BATCH_SIZE
@ -1278,12 +1268,11 @@ background migration.
end
```
1. Update the created post-deployment migration with required delay and batch sizes:
1. Update the created post-deployment migration with required batch sizes:
```ruby
class QueueBackfillRoutesNamespaceId < Gitlab::Database::Migration[2.1]
MIGRATION = 'BackfillRouteNamespaceId'
DELAY_INTERVAL = 2.minutes
BATCH_SIZE = 1000
SUB_BATCH_SIZE = 100
@ -1294,7 +1283,6 @@ background migration.
MIGRATION,
:routes,
:id,
job_interval: DELAY_INTERVAL,
batch_size: BATCH_SIZE,
sub_batch_size: SUB_BATCH_SIZE
)

View File

@ -229,8 +229,7 @@ scheduled after the background migration has completed, which could be several r
queue_batched_background_migration(
MIGRATION,
:merge_request_diffs,
:id,
job_interval: DELAY_INTERVAL
:id
)
end

View File

@ -251,7 +251,6 @@ class ScheduleCapTitleLengthOnIssues < Gitlab::Database::Migration[2.1]
ISSUES_BACKGROUND_MIGRATION,
:issues,
:id,
job_interval: DELAY_INTERVAL,
batch_size: BATCH_SIZE
)
end

View File

@ -27,7 +27,7 @@ This is an integration between Snyk and GitLab CI via a GitLab CI/CD Component.
This project has a component that runs the Snyk CLI and outputs the scan report in the SARIF format. It calls a separate component that converts SARIF to the GitLab vulnerability record format using a job based on the semgrep base image.
There is a versioned container in the Container Registry that has a node base image with the Snyk CLI installed on top. This is the image used in the Snyk component job.
There is a versioned container in the container registry that has a node base image with the Snyk CLI installed on top. This is the image used in the Snyk component job.
The `.gitlab-ci.yml` file builds the container image, tests, and versions the component.
### Versioning

View File

@ -23,7 +23,7 @@ You can use any version of DAST in an offline environment. To do this, you need:
- GitLab Runner with the [`docker` or `kubernetes` executor](requirements.md).
The runner must have network access to the target application.
- Docker Container Registry with a locally available copy of the DAST
- Docker container registry with a locally available copy of the DAST
[container image](https://gitlab.com/security-products/dast), found in the
[DAST container registry](https://gitlab.com/security-products/dast/container_registry).
See [Loading Docker images onto your offline host](../../../offline_deployments/_index.md#loading-docker-images-onto-your-offline-host).

View File

@ -5,11 +5,11 @@ module API
class Namespace
class RootStorageStatistics < Grape::Entity
expose :build_artifacts_size, documentation: { type: 'integer', desc: 'CI artifacts size in bytes.' }
expose :container_registry_size, documentation: { type: 'integer', desc: 'Container Registry size in bytes.' }
expose :container_registry_size, documentation: { type: 'integer', desc: 'container registry size in bytes.' }
expose :registry_size_estimated,
as: :container_registry_size_is_estimated,
documentation: { type: 'boolean',
desc: 'Indicates whether the deduplicated Container Registry size for ' \
desc: 'Indicates whether the deduplicated container registry size for ' \
'the namespace is an estimated value or not.' }
expose :dependency_proxy_size, documentation: { type: 'integer', desc: 'Dependency Proxy sizes in bytes.' }
expose :lfs_objects_size, documentation: { type: 'integer', desc: 'LFS objects size in bytes.' }

View File

@ -7,7 +7,7 @@ module API
included do
rescue_from Faraday::Error, ::ContainerRegistry::Path::InvalidRegistryPathError do |e|
service_unavailable!('We are having trouble connecting to the Container Registry. If this error persists, please review the troubleshooting documentation.')
service_unavailable!('We are having trouble connecting to the container registry. If this error persists, please review the troubleshooting documentation.')
end
end
end

View File

@ -12,7 +12,6 @@ class <%= migration_class_name %> < Gitlab::Database::Migration[<%= Gitlab::Data
restrict_gitlab_migration # gitlab_schema: :gitlab_main / :gitlab_ci / :gitlab_main_clusterwide / ...
MIGRATION = "<%= class_name %>"
# DELAY_INTERVAL = 2.minutes
# BATCH_SIZE = <%= Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers::BATCH_SIZE %>
# SUB_BATCH_SIZE = <%= Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers::SUB_BATCH_SIZE %>
@ -25,7 +24,6 @@ class <%= migration_class_name %> < Gitlab::Database::Migration[<%= Gitlab::Data
MIGRATION,
:<%= table_name %>,
:<%= column_name %>,
job_interval: DELAY_INTERVAL,
batch_size: BATCH_SIZE,
sub_batch_size: SUB_BATCH_SIZE
)

View File

@ -33,14 +33,14 @@ module Gitlab
# class must be present in the Gitlab::BackgroundMigration module, and the batch class (if specified) must be
# present in the Gitlab::BackgroundMigration::BatchingStrategies module.
#
# If migration with same job_class_name, table_name, column_name, and job_arguments already exists, this helper
# will log an warning and not create a new one.
# If a migration with same job_class_name, table_name, column_name, and job_arguments already exists, this helper
# will log a warning and not create a new one.
#
# job_class_name - The background migration job class as a string
# batch_table_name - The name of the table the migration will batch over
# batch_column_name - The name of the column the migration will batch over
# job_arguments - Extra arguments to pass to the job instance when the migration runs
# job_interval - The pause interval between each job's execution, minimum of 2 minutes
# job_interval - The pause interval between each job's execution, minimum of 2 minutes, defaults to BATCH_MIN_DELAY
# batch_min_value - The value in the column the batching will begin at
# batch_max_value - The value in the column the batching will end at, defaults to `SELECT MAX(batch_column)`
# batch_class_name - The name of the class that will be called to find the range of each next batch
@ -55,10 +55,9 @@ module Gitlab
# 'CopyColumnUsingBackgroundMigrationJob',
# :events,
# :id,
# job_interval: 2.minutes,
# other_job_arguments: ['column1', 'column2'])
#
# Where the the background migration exists:
# Where the background migration exists:
#
# class Gitlab::BackgroundMigration::CopyColumnUsingBackgroundMigrationJob
# def perform(start_id, end_id, batch_table, batch_column, sub_batch_size, *other_args)
@ -70,7 +69,7 @@ module Gitlab
batch_table_name,
batch_column_name,
*job_arguments,
job_interval:,
job_interval: BATCH_MIN_DELAY,
batch_min_value: BATCH_MIN_VALUE,
batch_max_value: nil,
batch_class_name: BATCH_CLASS_NAME,

View File

@ -49,7 +49,7 @@ module Sidebars
end
::Sidebars::MenuItem.new(
title: _('Container Registry'),
title: _('Container registry'),
link: group_container_registries_path(context.group),
super_sidebar_parent: ::Sidebars::Groups::SuperSidebarMenus::DeployMenu,
active_routes: { controller: 'groups/registry/repositories' },

View File

@ -53,7 +53,7 @@ module Sidebars
end
::Sidebars::MenuItem.new(
title: _('Container Registry'),
title: _('Container registry'),
link: project_container_registry_index_path(context.project),
super_sidebar_parent: Sidebars::Projects::SuperSidebarMenus::DeployMenu,
active_routes: { controller: 'projects/registry/repositories' },

View File

@ -15876,9 +15876,6 @@ msgstr ""
msgid "Contacts"
msgstr ""
msgid "Container Registry"
msgstr ""
msgid "Container Repository"
msgstr ""
@ -15897,6 +15894,9 @@ msgstr ""
msgid "Container must be a project or a group."
msgstr ""
msgid "Container registry"
msgstr ""
msgid "Container registry images"
msgstr ""
@ -15994,9 +15994,6 @@ msgstr ""
msgid "ContainerRegistry|Configure in settings"
msgstr ""
msgid "ContainerRegistry|Container Registry"
msgstr ""
msgid "ContainerRegistry|Container Scanning for Registry: Off"
msgstr ""
@ -16102,7 +16099,7 @@ msgstr ""
msgid "ContainerRegistry|GitLab is unable to validate this signature automatically. Validate the signature manually before trusting it."
msgstr ""
msgid "ContainerRegistry|If you are not already logged in, you need to authenticate to the Container Registry by using your GitLab username and password. If you have %{twofaDocLinkStart}Two-Factor Authentication%{twofaDocLinkEnd} enabled, use a %{personalAccessTokensDocLinkStart}personal access token%{personalAccessTokensDocLinkEnd} instead of a password."
msgid "ContainerRegistry|If you are not already logged in, you need to authenticate to the container registry by using your GitLab username and password. If you have %{twofaDocLinkStart}Two-Factor Authentication%{twofaDocLinkEnd} enabled, use a %{personalAccessTokensDocLinkStart}personal access token%{personalAccessTokensDocLinkEnd} instead of a password."
msgstr ""
msgid "ContainerRegistry|Image repository deletion failed"
@ -16338,7 +16335,7 @@ msgstr ""
msgid "ContainerRegistry|Tags with names that match this regex pattern are removed. %{linkStart}View regex examples.%{linkEnd}"
msgstr ""
msgid "ContainerRegistry|The %{linkStart}GitLab Container Registry%{linkEnd} is a secure and private registry for container images. Its built on open source software and completely integrated within GitLab. Use GitLab CI/CD to create and publish images. Use the GitLab API to manage the registry across groups and projects."
msgid "ContainerRegistry|The %{linkStart}GitLab container registry%{linkEnd} is a secure and private registry for container images. Its built on open source software and completely integrated within GitLab. Use GitLab CI/CD to create and publish images. Use the GitLab API to manage the registry across groups and projects."
msgstr ""
msgid "ContainerRegistry|The %{linkStart}next-generation container registry%{linkEnd} is now available for upgrade on self-managed instances. This upgraded registry supports online garbage collection, and has significant performance and reliability improvements."
@ -16398,7 +16395,7 @@ msgstr ""
msgid "ContainerRegistry|Users with at least the Developer role for this project will be able to push and delete container images to this repository path."
msgstr ""
msgid "ContainerRegistry|We are having trouble connecting to the Container Registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgid "ContainerRegistry|We are having trouble connecting to the container registry. Please try refreshing the page. If this error persists, please review %{docLinkStart}the troubleshooting documentation%{docLinkEnd}."
msgstr ""
msgid "ContainerRegistry|When a container image tag is protected, only certain user roles can create, update, and delete the protected tag, which helps to prevent unauthorized changes. You can add up to 5 protection rules per project."
@ -16410,10 +16407,10 @@ msgstr ""
msgid "ContainerRegistry|While the rename is in progress, new uploads to the container registry are blocked. Ongoing uploads may fail and need to be retried."
msgstr ""
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgid "ContainerRegistry|With the container registry, every project can have its own space to store its Docker images. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
msgid "ContainerRegistry|With the Container Registry, every project can have its own space to store its Docker images. Push at least one Docker image in one of this group's projects in order to show up here. %{docLinkStart}More Information%{docLinkEnd}"
msgid "ContainerRegistry|With the container registry, every project can have its own space to store its Docker images. Push at least one Docker image in one of this group's projects in order to show up here. %{docLinkStart}More Information%{docLinkEnd}"
msgstr ""
msgid "ContainerRegistry|You are about to delete the container repository protection rule for %{repositoryPathPattern}."
@ -24369,7 +24366,7 @@ msgstr ""
msgid "Existing projects may be moved into a group"
msgstr ""
msgid "Existing projects will be able to use cleanup policies. Avoid enabling this if an external Container Registry is being used, as there is a performance risk if many images exist on one project."
msgid "Existing projects will be able to use cleanup policies. Avoid enabling this if an external container registry is being used, as there is a performance risk if many images exist on one project."
msgstr ""
msgid "Exit full screen"
@ -28750,7 +28747,7 @@ msgstr ""
msgid "GroupSettings|Building the cache is asynchronous, happens in a background job. The cache invalidation is synchronous with strong consistency guarantees."
msgstr ""
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgid "GroupSettings|Cannot update the path because there are projects under this group that contain Docker images in their container registry. Please remove the images from your projects first and try again."
msgstr ""
msgid "GroupSettings|Change group URL"
@ -28960,6 +28957,9 @@ msgstr ""
msgid "GroupSettings|Undo"
msgstr ""
msgid "GroupSettings|Unless manually disabled, this setting will be automatically enabled in GitLab 18.0. This setting is scheduled to be removed in GitLab 18.3, and the JWT format will be used by all job tokens."
msgstr ""
msgid "GroupSettings|Users can create %{link_start_project}project access tokens%{link_end} and %{link_start_group}group access tokens%{link_end} in this group"
msgstr ""
@ -61886,7 +61886,7 @@ msgstr ""
msgid "TransferGroup|Cannot transfer group to one of its subgroup."
msgstr ""
msgid "TransferGroup|Cannot update the path because there are projects under this group that contain Docker images in their Container Registry. Please remove the images from your projects first and try again."
msgid "TransferGroup|Cannot update the path because there are projects under this group that contain Docker images in their container registry. Please remove the images from your projects first and try again."
msgstr ""
msgid "TransferGroup|Database is not supported."
@ -62974,7 +62974,7 @@ msgstr ""
msgid "UsageQuotas|An error occurred loading the transfer data. Please refresh the page to try again."
msgstr ""
msgid "UsageQuotas|Container Registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total."
msgid "UsageQuotas|Container registry storage statistics are not used to calculate the total project storage. Total project storage is calculated after namespace container deduplication, where the total of all unique containers is added to the namespace storage total."
msgstr ""
msgid "UsageQuotas|Namespace transfer data used"
@ -63025,7 +63025,7 @@ msgstr ""
msgid "UsageQuota|Compute usage since %{usageSince}"
msgstr ""
msgid "UsageQuota|Container Registry"
msgid "UsageQuota|Container registry"
msgstr ""
msgid "UsageQuota|Dependency proxy"
@ -63046,7 +63046,7 @@ msgstr ""
msgid "UsageQuota|GitLab Duo"
msgstr ""
msgid "UsageQuota|Gitlab-integrated Docker Container Registry for storing Docker Images."
msgid "UsageQuota|Gitlab-integrated Docker container registry for storing Docker Images."
msgstr ""
msgid "UsageQuota|Group settings %{gt} Usage quotas"
@ -63094,7 +63094,7 @@ msgstr ""
msgid "UsageQuota|Namespace storage used"
msgstr ""
msgid "UsageQuota|Namespace total storage represents the sum of storage consumed by all projects, Container Registry, and Dependency Proxy."
msgid "UsageQuota|Namespace total storage represents the sum of storage consumed by all projects, container registry, and Dependency Proxy."
msgstr ""
msgid "UsageQuota|No compute usage data available."
@ -63115,7 +63115,7 @@ msgstr ""
msgid "UsageQuota|Pipeline artifacts and job artifacts, created with CI/CD."
msgstr ""
msgid "UsageQuota|Precise calculation of Container Registry storage size is delayed because it is too large for synchronous estimation. Precise evaluation will be scheduled within 24 hours."
msgid "UsageQuota|Precise calculation of container registry storage size is delayed because it is too large for synchronous estimation. Precise evaluation will be scheduled within 24 hours."
msgstr ""
msgid "UsageQuota|Product analytics"

View File

@ -11,7 +11,7 @@ module QA
end
def go_to_container_registry
open_deploy_submenu('Container Registry')
open_deploy_submenu('Container registry')
end
def go_to_pages_settings

View File

@ -674,7 +674,7 @@ RSpec.describe GroupsController, :with_current_organization, factory_default: :k
it 'does not allow to path of the group to be changed' do
post :update, params: { id: group.to_param, group: { path: 'new_path' } }
expect(assigns(:group).errors[:base].first).to match(/Docker images in their Container Registry/)
expect(assigns(:group).errors[:base].first).to match(/Docker images in their container registry/)
expect(response).to have_gitlab_http_status(:ok)
end
end
@ -1055,7 +1055,7 @@ RSpec.describe GroupsController, :with_current_organization, factory_default: :k
end
it 'does not allow the group to be transferred' do
expect(controller).to set_flash[:alert].to match(/Docker images in their Container Registry/)
expect(controller).to set_flash[:alert].to match(/Docker images in their container registry/)
expect(response).to redirect_to(edit_group_path(group))
end
end

View File

@ -33,14 +33,14 @@ RSpec.describe 'Container Registry', :js, feature_category: :container_registry
it 'has a page title set' do
visit_container_registry
expect(page).to have_title _('Container Registry')
expect(page).to have_title _('Container registry')
end
it 'sidebar menu is open' do
visit_container_registry
expect(page).to have_active_navigation('Deploy')
expect(page).to have_active_sub_navigation('Container Registry')
expect(page).to have_active_sub_navigation('Container registry')
end
context 'when there are no image repositories' do

View File

@ -28,7 +28,7 @@ RSpec.describe 'Groups > sidebar', :js, feature_category: :groups_and_projects d
it 'has container registry link' do
within_testid 'super-sidebar' do
click_button 'Deploy'
expect(page).to have_link(_('Container Registry'))
expect(page).to have_link(_('Container registry'))
end
end
end
@ -42,7 +42,7 @@ RSpec.describe 'Groups > sidebar', :js, feature_category: :groups_and_projects d
it 'does not have container registry link' do
within_testid 'super-sidebar' do
click_button 'Deploy'
expect(page).not_to have_link(_('Container Registry'))
expect(page).not_to have_link(_('Container registry'))
end
end
end

View File

@ -47,7 +47,7 @@ RSpec.describe 'Container Registry', :js, feature_category: :container_registry
it 'has a page title set' do
visit_container_registry
expect(page).to have_title _('Container Registry')
expect(page).to have_title _('Container registry')
end
it 'has link to next generation container registry docs' do

View File

@ -3,7 +3,7 @@
exports[`Registry Group Empty state to match the default snapshot 1`] = `
<div>
<p>
With the Container Registry, every project can have its own space to store its Docker images. Push at least one Docker image in one of this group's projects in order to show up here.
With the container registry, every project can have its own space to store its Docker images. Push at least one Docker image in one of this group's projects in order to show up here.
<gl-link-stub
href="/help/user/packages/container_registry/_index"
target="_blank"

View File

@ -49,7 +49,7 @@ describe('Container registry project settings section', () => {
it('renders with description', () => {
expect(findSettingsBlock().text()).toBe(
'The GitLab Container Registry is a secure and private registry for container images. Its built on open source software and completely integrated within GitLab. Use GitLab CI/CD to create and publish images. Use the GitLab API to manage the registry across groups and projects.',
'The GitLab container registry is a secure and private registry for container images. Its built on open source software and completely integrated within GitLab. Use GitLab CI/CD to create and publish images. Use the GitLab API to manage the registry across groups and projects.',
);
});

View File

@ -137,6 +137,21 @@ RSpec.describe Resolvers::ContainerRepositoryTagsResolver, feature_category: :co
end
it_behaves_like 'fetching via tags and filter in place'
context 'when Faraday connection error occurs' do
before do
allow(repository).to receive(:tags).and_raise(Faraday::Error, nil, nil)
end
it 'raises a ResourceNotAvailable error with appropriate message' do
expected_message = "Can't connect to the container registry. If this error persists, please review the \
troubleshooting documentation."
expect_graphql_error_to_be_created(Gitlab::Graphql::Errors::ResourceNotAvailable, expected_message) do
resolver(args)
end
end
end
end
def resolver(args, opts = {})

View File

@ -12,7 +12,6 @@ class QueueMyBatchedMigration < Gitlab::Database::Migration[2.2]
restrict_gitlab_migration # gitlab_schema: :gitlab_main / :gitlab_ci / :gitlab_main_clusterwide / ...
MIGRATION = "MyBatchedMigration"
# DELAY_INTERVAL = 2.minutes
# BATCH_SIZE = 1000
# SUB_BATCH_SIZE = 100
@ -25,7 +24,6 @@ class QueueMyBatchedMigration < Gitlab::Database::Migration[2.2]
MIGRATION,
:projects,
:id,
job_interval: DELAY_INTERVAL,
batch_size: BATCH_SIZE,
sub_batch_size: SUB_BATCH_SIZE
)

View File

@ -157,6 +157,18 @@ RSpec.describe Gitlab::Database::Migrations::BatchedBackgroundMigrationHelpers,
end
end
context 'when the job interval is optional and defaults to the minimum' do
it 'sets the job interval to the minimum value' do
expect do
migration.queue_batched_background_migration(job_class.name, :events, :id)
end.to change { Gitlab::Database::BackgroundMigration::BatchedMigration.count }.by(1)
created_migration = Gitlab::Database::BackgroundMigration::BatchedMigration.last
expect(created_migration.interval).to eq(described_class::BATCH_MIN_DELAY)
end
end
context 'when additional arguments are passed to the method' do
context 'when the job class provides job_arguments_count' do
context 'when defined job arguments for the job class does not match provided arguments' do

View File

@ -149,7 +149,7 @@ RSpec.describe API::ContainerRepositories, feature_category: :container_registry
subject
expect(response).to have_gitlab_http_status(:service_unavailable)
expect(json_response['message']).to include('We are having trouble connecting to the Container Registry')
expect(json_response['message']).to include('We are having trouble connecting to the container registry')
end
end
end
@ -194,7 +194,7 @@ RSpec.describe API::ContainerRepositories, feature_category: :container_registry
subject
expect(response).to have_gitlab_http_status(:service_unavailable)
expect(json_response['message']).to include('We are having trouble connecting to the Container Registry')
expect(json_response['message']).to include('We are having trouble connecting to the container registry')
end
end

View File

@ -302,7 +302,7 @@ RSpec.describe 'container repository details', feature_category: :container_regi
subject
expect_graphql_errors_to_include("Can't connect to the Container Registry. If this error persists, please review the troubleshooting documentation.")
expect_graphql_errors_to_include("Can't connect to the container registry. If this error persists, please review the troubleshooting documentation.")
end
end
@ -364,7 +364,7 @@ RSpec.describe 'container repository details', feature_category: :container_regi
subject
expect_graphql_errors_to_include("Can't connect to the Container Registry. If this error persists, please review the troubleshooting documentation.")
expect_graphql_errors_to_include("Can't connect to the container registry. If this error persists, please review the troubleshooting documentation.")
end
end
end
@ -631,7 +631,7 @@ RSpec.describe 'container repository details', feature_category: :container_regi
subject
expect_graphql_errors_to_include("Can't connect to the Container Registry. If this error persists, please review the troubleshooting documentation.")
expect_graphql_errors_to_include("Can't connect to the container registry. If this error persists, please review the troubleshooting documentation.")
end
end
end

View File

@ -306,7 +306,7 @@ RSpec.describe API::ProjectContainerRepositories, feature_category: :container_r
with_them do
let(:url) { "/projects/#{project.id}/registry/repositories/#{root_repository.id}/tags?pagination=keyset&#{parameter}" }
it "passes the parameters correctly to the Container Registry API" do
it "passes the parameters correctly to the container registry API" do
expect_next_instances_of(ContainerRegistry::GitlabApiClient, 1) do |client|
allow(client).to receive(:supports_gitlab_api?).and_return(true)

View File

@ -926,7 +926,7 @@ RSpec.describe Groups::TransferService, :sidekiq_inline, feature_category: :grou
it 'does not transfer' do
expect(subject).to be false
expect(transfer_service.error).to match(/Docker images in their Container Registry/)
expect(transfer_service.error).to match(/Docker images in their container registry/)
end
end
@ -936,7 +936,7 @@ RSpec.describe Groups::TransferService, :sidekiq_inline, feature_category: :grou
it 'does not transfer' do
expect(subject).to be false
expect(transfer_service.error).to match(/Docker images in their Container Registry/)
expect(transfer_service.error).to match(/Docker images in their container registry/)
end
end
end

View File

@ -64,7 +64,7 @@ RSpec.describe Groups::UpdateService, feature_category: :groups_and_projects do
context 'with path updates' do
it 'does not allow the update' do
expect(subject).to be false
expect(public_group.errors[:base].first).to match(/Docker images in their Container Registry/)
expect(public_group.errors[:base].first).to match(/Docker images in their container registry/)
end
end
@ -93,7 +93,7 @@ RSpec.describe Groups::UpdateService, feature_category: :groups_and_projects do
it 'does not allow path updates' do
expect(subject).to be false
expect(public_group.errors[:base].first).to match(/Docker images in their Container Registry/)
expect(public_group.errors[:base].first).to match(/Docker images in their container registry/)
end
end
end

View File

@ -67,13 +67,13 @@ module NavbarStructureHelper
insert_after_sub_nav_item(
_('Package registry'),
within: _('Deploy'),
new_sub_nav_item_name: _('Container Registry')
new_sub_nav_item_name: _('Container registry')
)
end
def insert_google_artifact_registry_nav
insert_after_sub_nav_item(
_('Container Registry'),
_('Container registry'),
within: _('Deploy'),
new_sub_nav_item_name: _('Google Artifact Registry')
)

View File

@ -4,6 +4,6 @@ RSpec.shared_examples 'handling feature network errors with the container regist
it 'displays the error message' do
visit_container_registry
expect(page).to have_content 'We are having trouble connecting to the Container Registry'
expect(page).to have_content 'We are having trouble connecting to the container registry'
end
end

View File

@ -96,7 +96,7 @@ RSpec.shared_examples 'handling network errors with the container registry' do
subject
expect(response).to have_gitlab_http_status(:service_unavailable)
expect(json_response['message']).to include('We are having trouble connecting to the Container Registry')
expect(json_response['message']).to include('We are having trouble connecting to the container registry')
end
end
@ -108,7 +108,7 @@ RSpec.shared_examples 'handling graphql network errors with the container regist
it 'returns a connection error' do
subject
expect_graphql_errors_to_include('We are having trouble connecting to the Container Registry')
expect_graphql_errors_to_include('We are having trouble connecting to the container registry')
end
end