Create Direct Transfer bulk import pipeline for `project_push_rules`
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Work on this issue](https://contributors.gitlab.com/manage-issue?action=work&projectId=278964&issueIid=593334) </details> <!--IssueSummary end--> #### Problem Direct Transfer currently uses the [PushRulePipeline](https://gitlab.com/gitlab-org/gitlab/blob/ee2df5569b502651c70d98895b0163b9dcdbcdc6/ee/lib/bulk_imports/projects/pipelines/push_rule_pipeline.rb#L1-1) to import push rules from the legacy `push_rules` table. With the ongoing migration to the `project_push_rules` table (#499156), Direct Transfer needs a corresponding pipeline for the new table. This was identified during investigation of #591680 and discussed in [this comment](https://gitlab.com/gitlab-org/gitlab/-/work_items/591680#note_3151341041). #### Proposal 1. Create a new bulk import pipeline for `project_push_rules`, modeled after the existing [PushRulePipeline](https://gitlab.com/gitlab-org/gitlab/blob/ee2df5569b502651c70d98895b0163b9dcdbcdc6/ee/lib/bulk_imports/projects/pipelines/push_rule_pipeline.rb#L1-1) 2. Register the new pipeline in the Direct Transfer project stage 3. Ensure uniqueness is enforced so duplicate records are not created on import 4. Add tests covering the new pipeline #### Related issues - #591680 - `ActiveRecord::RecordInvalid: Validation failed: Project has already been taken` - #499156 - Push rules table migration tracking - #593331 - Add group push rules to group import/export - #593333 - Add `project_push_rules` relation to project import/export
issue