WIP - Ndjson group support format
This is a PoC for ndjson/legacy Writer and TreeSaver that will support non recursive Group export/import
FatJson - With legacy writer, when ndjson feature flag is not enabled:
[
{
"id": 22,
"name": "Gitlab Org",
"path": "gitlab-org",
"description": "Rerum soluta quae et similique aliquam doloremque facere.",
"avatar": {},
"membership_lock": false,
"share_with_group_lock": false,
"request_access_enabled": true,
"ldap_sync_status": "ready",
"ldap_sync_error": null,
"ldap_sync_last_update_at": null,
"ldap_sync_last_successful_update_at": null,
"ldap_sync_last_sync_at": null,
"lfs_enabled": null,
"parent_id": null,
"shared_runners_minutes_limit": null,
"repository_size_limit": null,
"require_two_factor_authentication": false,
"two_factor_grace_period": 48,
"plan_id": null,
"project_creation_level": 2,
"trial_ends_on": null,
"file_template_project_id": null,
"custom_project_templates_group_id": null,
"auto_devops_enabled": null,
"extra_shared_runners_minutes_limit": null,
"last_ci_minutes_notification_at": null,
"last_ci_minutes_usage_notification_level": null,
"subgroup_creation_level": 1,
"emails_disabled": null,
"max_pages_size": null,
"max_artifacts_size": null,
"mentions_disabled": null,
"labels": [...],
"members": [...],
"epics": [...]
},
{
"id": 23,
"name": "Gnuwget",
"path": "gnuwget",
"description": "Aperiam voluptas iure eum eaque voluptates.",
"avatar": {},
"membership_lock": false,
"share_with_group_lock": false,
"request_access_enabled": true,
"ldap_sync_status": "ready",
"ldap_sync_error": null,
"ldap_sync_last_update_at": null,
"ldap_sync_last_successful_update_at": null,
"ldap_sync_last_sync_at": null,
"lfs_enabled": null,
"parent_id": 22,
"shared_runners_minutes_limit": null,
"repository_size_limit": null,
"require_two_factor_authentication": false,
"two_factor_grace_period": 48,
"plan_id": null,
"project_creation_level": 2,
"trial_ends_on": null,
"file_template_project_id": null,
"custom_project_templates_group_id": null,
"auto_devops_enabled": null,
"extra_shared_runners_minutes_limit": null,
"last_ci_minutes_notification_at": null,
"last_ci_minutes_usage_notification_level": null,
"subgroup_creation_level": 1,
"emails_disabled": null,
"max_pages_size": null,
"max_artifacts_size": null,
"mentions_disabled": null,
"labels": [...],
"members": [...],
"epics": [...]
}
]
NDJSON
We are storing each group in separate folder, except root group, which is stored in root folder
We would have same flatten structure as above, but instead of array, we will have separate folder for each element, except for the root one. (or we can store root in folder as well - 0? )
Edited by 🤖 GitLab Bot 🤖