Support creating an MR/branch on a fork from an issue
What does this MR do?
This MR contains backend changes that will be used by the frontend to create MR/branch on a private fork.
The MergeRequests::CreateFromIssueService
has been updated to accept a target_project_id
which can be any fork of the issue's project. If it's set, the MR/branch will be created on that project instead of the issue's project.
The Projects::BranchesController#create
endpoint has also been updated to accept a confidential_issue_project_id
. This is needed so we can create a system note on the issue where the branch on private fork was created from.
The create_confidential_merge_request
feature flag is used here to not pass the target_project_id
to service object and to ignore confidential_issue_project_id
if not enabled.
Does this MR meet the acceptance criteria?
Conformity
- [-] Changelog entry
- [-] Documentation created/updated or follow-up review issue created
-
Code review guidelines - [-] Merge request performance guidelines
- [-] Style guides
- [-] Database guides
- [-] Separation of EE specific content
Performance 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
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