Add group push rules to group import/export
#### Problem Group push rules are not currently included in group import/export. The group [import_export.yml](https://gitlab.com/gitlab-org/gitlab/blob/ee2df5569b502651c70d98895b0163b9dcdbcdc6/lib/gitlab/import_export/group/import_export.yml#L134-134) file does not define push rules as a relation, meaning they are silently dropped during group migration. This was identified during investigation of #591680 (`ActiveRecord::RecordInvalid` on push rule import) and the broader `push_rules` → `project_push_rules` / `group_push_rules` table migration tracked in #499156. Since the `read_and_write_group_push_rules` feature flag has been removed (!212113), the code now uses the `group_push_rules` table, but import/export has not been updated to reflect this. #### Proposal 1. Add the `group_push_rules` relation to the group `import_export.yml` file 1. For Direct Transfer, create a new bulk import pipeline for group push rules (similar to the existing [PushRulePipeline](https://gitlab.com/gitlab-org/gitlab/blob/ee2df5569b502651c70d98895b0163b9dcdbcdc6/ee/lib/bulk_imports/projects/pipelines/push_rule_pipeline.rb#L1-1) for projects) 1. Add tests covering group push rule export and import 1. Ensure uniqueness is enforced so duplicate group push rules are not created on import 1. Change Direct Transfer and Project file base import to import the source project push rule when the destination group has push rules defined. In other words, source project push rule should take precedence over the destination group's push rules 1. Change documentation about the group and project migrated items Note, in Direct Transfer, we should ensure the GroupPushRulePipeline is only executed for Gitlab releases that include the new relation #### Related issues - #591680 - `ActiveRecord::RecordInvalid: Validation failed: Project has already been taken` - #499156 - Push rules table migration tracking
issue