Merge Request creation from fork fails due to approval rule sourcing
Summary
When creating a merge request from a branch from a fork, creation would fail due to rules not linked to target project level rules.
Steps to reproduce
- Create a project
- Add user1 as maintainer
- Add project level rule, allow override
- Log in as user1
- Fork project
- Create a new branch by changing a file, on the forked project
- Access merge request creation form
- Alter the form's target project to the original project.
- Add a rule (* here you would see that the form is not populated with original project's approval rules)
- Click submit.
Example Project
What is the current bug behavior?
MR creation fails with the error message:
The form contains the following error: Approval rules translation missing: en.activerecord.errors.models.merge_request.attributes.approval_rules.invalid_sourcing_to_project_rules
What is the expected correct behavior?
The MR create form should be populated with approval rules from target project.
Relevant logs and/or screenshots
Zendesk: https://gitlab.zendesk.com/agent/tickets/117113
A customer encountered an error with merge request approval rules and instead of getting a nice human-readable error they get an error about a missing translation. Ultimately, we can still tell from the error that the problem is 'invalid sourcing to project rules'. But we should make sure this translation is correctly externalized and translated so the user gets a nice error.
The form contains the following error:
Approval rules translation missing: en.activerecord.errors.models.merge_request.attributes.approval_rules.invalid_sourcing_to_project_rules
Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:env:info
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production
)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Possible fixes
/label ~bug