# gitlab-projects-migrate
<!-- markdownlint-disable no-inline-html -->
[![Build](https://gitlab.com/AdrianDC/gitlab-projects-migrate/badges/main/pipeline.svg)](https://gitlab.com/AdrianDC/gitlab-projects-migrate/-/commits/main/)
Migrate GitLab projects from a GitLab group to another GitLab's group
---
## Purpose
The migration can be performed between entirely different GitLab servers.
The following steps are required before using the tool:
- The groups need to be created manually by the user or by a GitLab administrator
- The GitLab user tokens must be created with an `api` scope (a short expiration date is recommended)
---
## Examples
<!-- prettier-ignore-start -->
```bash
# Show the helper menu
gitlab-projects-migrate
# Migrate projects from one group to another, then migrate subgroups
gitlab-projects-migrate 'https://gitlab.com' 'old/group' 'https://gitlab.com' 'new/group'
gitlab-projects-migrate 'https://gitlab.com' 'old/group/subgroup1' 'https://gitlab.com' 'new/group/subgroup1'
gitlab-projects-migrate 'https://gitlab.com' 'old/group/subgroup2' 'https://gitlab.com' 'new/group/subgroup2'
# Migrate projects from one GitLab to another GitLab
gitlab-projects-migrate 'https://old.gitlab.com' 'group/subgroup' 'https://new.gitlab.com'
```
<!-- prettier-ignore-end -->
---
## Usage
<!-- prettier-ignore-start -->
<!-- readme-help-start -->
```yaml
usage: gitlab-projects-migrate [-h] [--version] [-I INPUT_TOKEN] [-O OUTPUT_TOKEN] [--dry-run] [--exclude-group]
[--exclude-subgroups] [--exclude-projects] [--keep-members] [--overwrite]
[--set-avatar FILE] [--update-description]
[input_gitlab] [input_path] [output_gitlab] [output_group]
gitlab-projects-migrate: Migrate GitLab projects from a GitLab group to another GitLab's group
internal arguments:
-h, --help # Show this help message
--version # Show the current version
credentials arguments:
-I INPUT_TOKEN # Input GitLab API token (default: GITLAB_INPUT_TOKEN or GITLAB_TOKEN environments)
-O OUTPUT_TOKEN # Output GitLab API token (default: GITLAB_OUTPUT_TOKEN, GITLAB_TOKEN environments, or INPUT_TOKEN argument)
migration arguments:
--dry-run # Enable dry run mode to check without saving
--exclude-group # Exclude parent group migration
--exclude-subgroups # Exclude children subgroups migration
--exclude-projects # Exclude children projects migration
--keep-members # Keep input members after importing on output GitLab
--overwrite # Overwrite existing projects on output GitLab
general settings arguments:
--set-avatar FILE # Set avatar of GitLab output projects and groups
--update-description # Update description of GitLab output projects and groups automatically
positional arguments:
input_gitlab # Input GitLab URL (default: https://gitlab.com)
input_path # Input GitLab group or project path
output_gitlab # Output GitLab URL (default: https://gitlab.com)
output_group # Output GitLab group
```
<!-- readme-help-stop -->
<!-- prettier-ignore-end -->
---
## Dependencies
- [colored](https://pypi.org/project/colored/): Terminal colors and styles
- [python-gitlab](https://pypi.org/project/python-gitlab/): A python wrapper for the GitLab API
- [setuptools](https://pypi.org/project/setuptools/): Build and manage Python packages
---
## References
- [git-chglog](https://github.com/git-chglog/git-chglog): CHANGELOG generator
- [gitlab-release](https://pypi.org/project/gitlab-release/): Utility for publishing on GitLab
- [gitlabci-local](https://pypi.org/project/gitlabci-local/): Launch .gitlab-ci.yml jobs locally
- [mypy](https://pypi.org/project/mypy/): Optional static typing for Python
- [PyPI](https://pypi.org/): The Python Package Index
- [twine](https://pypi.org/project/twine/): Utility for publishing on PyPI
Raw data
{
"_id": null,
"home_page": "https://gitlab.com/AdrianDC/gitlab-projects-migrate",
"name": "gitlab-projects-migrate",
"maintainer": null,
"docs_url": null,
"requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=3",
"maintainer_email": null,
"keywords": "gitlab issues sync",
"author": "Adrian DC",
"author_email": "radian.dc@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/4f/e2/922fdbfda74dfa232eb6e7d242979d5e2653403306c982518076d46ed43a/gitlab_projects_migrate-2.1.0.tar.gz",
"platform": null,
"description": "# gitlab-projects-migrate\n\n<!-- markdownlint-disable no-inline-html -->\n\n[![Build](https://gitlab.com/AdrianDC/gitlab-projects-migrate/badges/main/pipeline.svg)](https://gitlab.com/AdrianDC/gitlab-projects-migrate/-/commits/main/)\n\nMigrate GitLab projects from a GitLab group to another GitLab's group\n\n---\n\n## Purpose\n\nThe migration can be performed between entirely different GitLab servers.\n\nThe following steps are required before using the tool:\n\n- The groups need to be created manually by the user or by a GitLab administrator\n- The GitLab user tokens must be created with an `api` scope (a short expiration date is recommended)\n\n---\n\n## Examples\n\n<!-- prettier-ignore-start -->\n\n```bash\n# Show the helper menu\ngitlab-projects-migrate\n\n# Migrate projects from one group to another, then migrate subgroups\ngitlab-projects-migrate 'https://gitlab.com' 'old/group' 'https://gitlab.com' 'new/group'\ngitlab-projects-migrate 'https://gitlab.com' 'old/group/subgroup1' 'https://gitlab.com' 'new/group/subgroup1'\ngitlab-projects-migrate 'https://gitlab.com' 'old/group/subgroup2' 'https://gitlab.com' 'new/group/subgroup2'\n\n# Migrate projects from one GitLab to another GitLab\ngitlab-projects-migrate 'https://old.gitlab.com' 'group/subgroup' 'https://new.gitlab.com'\n```\n\n<!-- prettier-ignore-end -->\n\n---\n\n## Usage\n\n<!-- prettier-ignore-start -->\n<!-- readme-help-start -->\n\n```yaml\nusage: gitlab-projects-migrate [-h] [--version] [-I INPUT_TOKEN] [-O OUTPUT_TOKEN] [--dry-run] [--exclude-group]\n [--exclude-subgroups] [--exclude-projects] [--keep-members] [--overwrite]\n [--set-avatar FILE] [--update-description]\n [input_gitlab] [input_path] [output_gitlab] [output_group]\n\ngitlab-projects-migrate: Migrate GitLab projects from a GitLab group to another GitLab's group\n\ninternal arguments:\n -h, --help # Show this help message\n --version # Show the current version\n\ncredentials arguments:\n -I INPUT_TOKEN # Input GitLab API token (default: GITLAB_INPUT_TOKEN or GITLAB_TOKEN environments)\n -O OUTPUT_TOKEN # Output GitLab API token (default: GITLAB_OUTPUT_TOKEN, GITLAB_TOKEN environments, or INPUT_TOKEN argument)\n\nmigration arguments:\n --dry-run # Enable dry run mode to check without saving\n --exclude-group # Exclude parent group migration\n --exclude-subgroups # Exclude children subgroups migration\n --exclude-projects # Exclude children projects migration\n --keep-members # Keep input members after importing on output GitLab\n --overwrite # Overwrite existing projects on output GitLab\n\ngeneral settings arguments:\n --set-avatar FILE # Set avatar of GitLab output projects and groups\n --update-description # Update description of GitLab output projects and groups automatically\n\npositional arguments:\n input_gitlab # Input GitLab URL (default: https://gitlab.com)\n input_path # Input GitLab group or project path\n output_gitlab # Output GitLab URL (default: https://gitlab.com)\n output_group # Output GitLab group\n```\n\n<!-- readme-help-stop -->\n<!-- prettier-ignore-end -->\n\n---\n\n## Dependencies\n\n- [colored](https://pypi.org/project/colored/): Terminal colors and styles\n- [python-gitlab](https://pypi.org/project/python-gitlab/): A python wrapper for the GitLab API\n- [setuptools](https://pypi.org/project/setuptools/): Build and manage Python packages\n\n---\n\n## References\n\n- [git-chglog](https://github.com/git-chglog/git-chglog): CHANGELOG generator\n- [gitlab-release](https://pypi.org/project/gitlab-release/): Utility for publishing on GitLab\n- [gitlabci-local](https://pypi.org/project/gitlabci-local/): Launch .gitlab-ci.yml jobs locally\n- [mypy](https://pypi.org/project/mypy/): Optional static typing for Python\n- [PyPI](https://pypi.org/): The Python Package Index\n- [twine](https://pypi.org/project/twine/): Utility for publishing on PyPI\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Migrate GitLab projects from a GitLab group to another GitLab's group",
"version": "2.1.0",
"project_urls": {
"Bug Reports": "https://gitlab.com/AdrianDC/gitlab-projects-migrate/-/issues",
"Changelog": "https://gitlab.com/AdrianDC/gitlab-projects-migrate/blob/main/CHANGELOG.md",
"Documentation": "https://gitlab.com/AdrianDC/gitlab-projects-migrate#gitlab-projects-migrate",
"Homepage": "https://gitlab.com/AdrianDC/gitlab-projects-migrate",
"Source": "https://gitlab.com/AdrianDC/gitlab-projects-migrate",
"Statistics": "https://pypistats.org/packages/gitlab-projects-migrate"
},
"split_keywords": [
"gitlab",
"issues",
"sync"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1079a7989070a366fcb8421c743979475e38825580b3d25fd0468acb647b74cd",
"md5": "8520e9ce1cc24b0aeaf9b822b6b461b6",
"sha256": "d87332774ba15c0c86e36a7384158cc11bbd992dd691c922e943a6f71a496226"
},
"downloads": -1,
"filename": "gitlab_projects_migrate-2.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "8520e9ce1cc24b0aeaf9b822b6b461b6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=3",
"size": 18628,
"upload_time": "2024-04-28T18:44:11",
"upload_time_iso_8601": "2024-04-28T18:44:11.876731Z",
"url": "https://files.pythonhosted.org/packages/10/79/a7989070a366fcb8421c743979475e38825580b3d25fd0468acb647b74cd/gitlab_projects_migrate-2.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4fe2922fdbfda74dfa232eb6e7d242979d5e2653403306c982518076d46ed43a",
"md5": "2c82055e59b692578302ec74c5766ac7",
"sha256": "b9d574b72e81667701724183c08bd00a9c71f423ae0af68123d70b503334848b"
},
"downloads": -1,
"filename": "gitlab_projects_migrate-2.1.0.tar.gz",
"has_sig": false,
"md5_digest": "2c82055e59b692578302ec74c5766ac7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=3",
"size": 21433,
"upload_time": "2024-04-28T18:44:13",
"upload_time_iso_8601": "2024-04-28T18:44:13.424430Z",
"url": "https://files.pythonhosted.org/packages/4f/e2/922fdbfda74dfa232eb6e7d242979d5e2653403306c982518076d46ed43a/gitlab_projects_migrate-2.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-28 18:44:13",
"github": false,
"gitlab": true,
"bitbucket": false,
"codeberg": false,
"gitlab_user": "AdrianDC",
"gitlab_project": "gitlab-projects-migrate",
"lcname": "gitlab-projects-migrate"
}