Add name_regex_keep to ContainerExpirationPolicy
What does this MR do?
This adds a new column name_regex_keep
to container_expiration_policies
and updates the project api to allow the new attribute to be saved.
This will allow container expiration policies to specify image tags that should never be deleted. This extends the work completed in !25484 (merged) which added name_regex_keep
to the bulk tag deletion API endpoint. That MR implemented the logic to use the new param in the tag deletion process.
A frontend MR will follow this MR to update the frontend form to include this new attribute.
Database
Up Migration
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: migrating ====
-- add_column(:container_expiration_policies, :name_regex_keep, :text)
-> 0.0015s
-- transaction_open?()
-> 0.0000s
-- execute("ALTER TABLE container_expiration_policies\nADD CONSTRAINT container_expiration_policies_name_regex_keep\nCHECK ( char_length(name_regex_keep) <= 255 )\nNOT VALID;\n")
-> 0.0007s
-- execute("SET statement_timeout TO 0")
-> 0.0002s
-- execute("ALTER TABLE container_expiration_policies VALIDATE CONSTRAINT container_expiration_policies_name_regex_keep;")
-> 0.0005s
-- execute("RESET ALL")
-> 0.0002s
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: migrated (0.0124s)
Down Migration
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: reverting ====
-- execute("ALTER TABLE container_expiration_policies\nDROP CONSTRAINT IF EXISTS container_expiration_policies_name_regex_keep\n")
-> 0.0009s
-- remove_column(:container_expiration_policies, :name_regex_keep)
-> 0.0005s
== 20200415192656 AddNameRegexKeepToContainerExpirationPolicies: reverted (0.0076s)
Screenshots
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry - [-] Documentation (if required)
-
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides - [-] Separation of EE specific content
Availability and Testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. - [-] Tested in all supported browsers
- [-] Informed Infrastructure department of a default or new setting change, if applicable per definition of done
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
- [-] 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 #207267 (closed)