Protected packages: CRUD protection rules in project setting ui
- This issue is part of the epic &5574+ - This issue focusses on the UX/UI for the project settings section related to protecting packages. - We can use [the implemented GraphQL API](/gitlab-org/gitlab/-/issues/416381 "Protected packages: Provide CRUD operations PackageProtectionRules in GraphQL API") ### Proposal We propose to use the same behavior UX and UI known from the features [Protected Branches](https://docs.gitlab.com/ee/user/project/protected_branches.html) and [Protected Tags](https://docs.gitlab.com/ee/user/project/protected_tags.html). ![grafik](/uploads/af7d57bfa6e2de9cbef396cb582c4b1c/grafik.png) NOTE: To avoid additional complexity at the start, we propose to focus just on package names for the beginning and disregard package version. ### Checklist / Implementation plan - [x] Discuss proposal and possible designs - [x] Implement list of package protection rules, see !140008+ - [x] Implement pagination for the list of package protection rules, see !140738+ - [x] Implement possibility to create package protection rules in project settings, see !140473+ - [x] Implement possibility to update package protection rules in project settings, see !141792+ - [x] Implement possibility to delete package protection rules in project settings, see !140483+ - [x] Align letter casing across the table columns and form fields for the attributes `package type` and `push protected up to access level` => !144076+ - [x] Add help text for users regarding package name and wildcards => !152221 - [~] Optional: Enhance list of package protection rule, e.g. sortable table, paginatable table, etc. - [~] Add label "protected" in [the overview list of package registries](https://docs.gitlab.com/ee/user/packages/package_registry/index.html#view-packages) as mentioned in https://gitlab.com/gitlab-org/gitlab/-/issues/413641#note_1708536668 . - [~] Show label "protected" in package detail page as mentioned in https://gitlab.com/gitlab-org/gitlab/-/issues/413641#note_1721463314 . - [x] Change form fields and table headers to “Name pattern”, “Type”, and “Allowed to push” (as suggested in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/140738#note_1750010075) => see !148704 - [ ] Refactor the naming of methods and variables in the file `app/assets/javascripts/packages_and_registries/settings/project/components/packages_protection_rules.vue` => see !146399+ - [x] Apply [the feedback and patch from `@annabeldunstone`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146523#note_1838085406) regarding the package protection rule overview table => !148704+ - [ ] Add icon with number of protected packages based on [the feedback from `@annabeldunstone`](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146523#note_1838085406) => !148699+ ### Checklist / Implementation plan for minimum access level for delete - [ ] Add new field "Minimum Access Level For Delete" in project setting UI => !180416+
issue