Skip to content

Protected containers: Update protection rules in project settings ui

What does this MR do and why?

  • Adding option to update the protection rule
  • Sending a graphql mutation "updateContainerRegistryProtectionRule" when access level for push protection changes
  • Adding an alert when the graphql mutation is not successful
  • Adding tests

🛠 with at Siemens

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

MR Checklist (@gerardo-navarro)

Screenshots or screen recordings

Here you can see the newly added select boxes in order to update the attributes push_protected_up_to_access_level and delete_protected_up_to_access_level.

Before After
image image
image image

How to set up and validate locally

  1. Enable Registry by editting config/gitlab.yml with the following setting
registry:
  enabled: true
  1. Restart GDK, see also https://docs.gitlab.com/ee/administration/packages/container_registry.html#configure-container-registry-under-an-existing-gitlab-domain
gdk restart
  1. In rails console enable the experiment fully
Feature.enable(:container_registry_protected_containers)
  1. Create some container protection rules to show in the table
15.times { |i| ContainerRegistry::Protection::Rule.create(project: Project.find(7), repository_path_pattern: "flightjs/flight#{i}", push_protected_up_to_access_level: :maintainer, delete_protected_up_to_access_level: :developer) }
  1. Go to http://gdk.test:3000/flightjs/Flight/-/settings/packages_and_registries
  2. Start updating the existing container protection rules

Related to #441345

Edited by Gerardo Navarro

Merge request reports