Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
6cb6b7cb84
commit
e05b0d1254
|
|
@ -1 +1 @@
|
|||
6f47120a08b8ac23dfe5303feec42b109fc2f3ff
|
||||
db3ec43472f41609c94a3f0cf5382b26360638e1
|
||||
|
|
|
|||
|
|
@ -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}`,
|
||||
)
|
||||
"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -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:',
|
||||
|
|
|
|||
|
|
@ -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',
|
||||
|
|
|
|||
|
|
@ -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. It’s 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. It’s 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.',
|
||||
)
|
||||
"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -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.',
|
||||
),
|
||||
},
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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.',
|
||||
),
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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.'
|
||||
|
|
|
|||
|
|
@ -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.")
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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 },
|
||||
|
|
|
|||
|
|
@ -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|
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -0,0 +1 @@
|
|||
6995c623aab5d20a319dd0ac86b3629d58b3fd97b5d626e10e4307294c9b06b6
|
||||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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>'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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. |
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
|
|
|||
|
|
@ -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.' }
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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' },
|
||||
|
|
|
|||
|
|
@ -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' },
|
||||
|
|
|
|||
|
|
@ -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. It’s 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. It’s 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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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. It’s 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. It’s 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.',
|
||||
);
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -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 = {})
|
||||
|
|
|
|||
|
|
@ -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
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue