Skip to content

Allow public projects API to modify container_registry_access_level

Reuben Pereira requested to merge 18792-allow-update-by-api1 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 public 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:

  1. Allows project_features.container_registry_access_level to be modified by the public projects API. This will allow users to set container_registry_access_level to ProjectFeature::PRIVATE.
  2. Deprecates the container_registry_enabled attribute in the public projects API, in favor of container_registry_access_level.

Screenshots (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