Resolve "Unable to fork project or create project if application wide lock_duo_features_enabled
is true
"
What does this MR do and why?
Fix for issue: #567332 (closed)
The check project_setting.duo_features_enabled_locked_by_ancestor?
only checks the immediate ancestor, that is the project's group for to understand where duo_features_enabled is locked
. It does not check the application setting's value.
However, before project_setting
is updated, it is necessary to check both the group's duo_features_enabled_locked?
value AND the application setting's duo_features_enabled_locked
value to evaluate if either is true
Thankfully, cascading attribute framework combines both checks into one, with duo_features_enabled_locked?
, so we can use this method to solve the issue at hand. Source
Steps to reproduce
- Run GDK in self-managed mode, with a Duo license.
- In
Admin>GitLab Duo
>Change configuration
setGitLab Duo availability
toAlways off
- Visit
/api/v4/application/settings
and checklock_duo_features_enabled: true
- Create a project and fork it
Before the fix: Project is half created with no repository
After the fix: Project is successfully created
References
Screenshots or screen recordings
Before | After |
---|---|
![]() |
![]() |
How to set up and validate locally
MR acceptance checklist
Evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.