Skip to content

Allow internal projects API to modify container_registry_access_level

Reuben Pereira requested to merge 18792-allow-update-by-internal-api into master

What does this MR do?

We are in the process of migrating code to use ProjectFeature#container_registry_access_level instead of Project#container_registry_enabled.

Current state:
We have migrated to use ProjectFeature#container_registry_access_level, but container_registry_access_level can currently hold 2 out of 3 possible values: ProjectFeature::ENABLED and ProjectFeature::DISABLED. This mimics the behavior of Project#container_registry_enabled.

This is because container_registry_access_level can currently only be set by using the container_registry_enabled boolean attribute in the internal API. Setting container_registry_enabled to true sets container_registry_access_level to ProjectFeature::ENABLED and setting container_registry_enabled to false sets container_registry_access_level to ProjectFeature::DISABLED.

This MR allows project_features.container_registry_access_level to be modified by the internal projects API. This API is used by our frontend, and will allow us to add a UI element which allows users to set the visibility of the container registry.

Screenshots or Screencasts (strongly suggested)

How to setup and validate locally (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team

Related to #18792 (closed)

Edited by Reuben Pereira

Merge request reports