{"id":46488569,"url":"https://github.com/and3k5/from-submodules-to-monorepo","last_synced_at":"2026-03-06T10:13:09.237Z","repository":{"id":286117077,"uuid":"960417715","full_name":"and3k5/from-submodules-to-monorepo","owner":"and3k5","description":"Utility to transform a big project with many submodules into a single monorepo","archived":false,"fork":false,"pushed_at":"2025-10-18T21:07:08.000Z","size":364,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-18T22:00:28.001Z","etag":null,"topics":["git","monorepo","submodule","submodules","transformer"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/from-submodules-to-monorepo","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/and3k5.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-04T11:58:10.000Z","updated_at":"2025-10-18T21:07:11.000Z","dependencies_parsed_at":"2025-04-04T13:21:51.962Z","dependency_job_id":"d810fd71-8d9a-47db-9476-600d7a9cf29a","html_url":"https://github.com/and3k5/from-submodules-to-monorepo","commit_stats":null,"previous_names":["and3k5/from-submodules-to-monorepo"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/and3k5/from-submodules-to-monorepo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/and3k5%2Ffrom-submodules-to-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/and3k5%2Ffrom-submodules-to-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/and3k5%2Ffrom-submodules-to-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/and3k5%2Ffrom-submodules-to-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/and3k5","download_url":"https://codeload.github.com/and3k5/from-submodules-to-monorepo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/and3k5%2Ffrom-submodules-to-monorepo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30171658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T07:56:45.623Z","status":"ssl_error","status_checked_at":"2026-03-06T07:55:55.621Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["git","monorepo","submodule","submodules","transformer"],"created_at":"2026-03-06T10:13:08.507Z","updated_at":"2026-03-06T10:13:09.225Z","avatar_url":"https://github.com/and3k5.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# What is this?\n\nThis utility transforms a big project with many submodules into a single monorepo.\n\nThe purpose is to keep the commit history \"intact\" while consolidating everything into one repository.\n\n## ⚠ Disclaimer ⚠\n\n⚠ **Use at your own risk!**  \nThis script is highly experimental and may cause irreversible damage, including but not limited to data loss, corruption of repositories, or deletion of your entire project. I will not be held responsible or liable for any damages, errors, or losses caused by using this solution. Always ensure you have proper backups before proceeding.\n\n## Example\n\nImagine this is the current project:\n\n```text\nMySuperProject/README.md       [file]\nMySuperProject/WebApplication1 [submodule]\nMySuperProject/ClassProject1   [submodule]\nMySuperProject/ClassProject2   [folder]\n```\n\nThe expected result would be:\n\n```text\nMySuperProject/README.md       [file]\nMySuperProject/WebApplication1 [folder]\nMySuperProject/ClassProject1   [folder]\nMySuperProject/ClassProject2   [folder]\n```\n\n### Is that so hard?\n\nMaybe not if you have only 2 submodules. But if you have 100+ submodules, it becomes a very daunting task.\n\nEvery submodule will be moved into a nested folder to be merged with the main repository.\n\n# How to use?\n\nSee USAGE.md for more\n\n## What does `perform-transformation.js` do?\n\n- It checks out a new branch in the main repository.\n- For every submodule in the main repository, it:\n    - Checks out a new branch in the submodule repository.\n    - Creates a directory with the same name as the submodule inside the submodule repository.\n    - Moves everything in the submodule repository into the newly created directory.\n    - Commits and pushes changes to the submodule repository origin.\n    - Removes the submodule from the main repository.\n    - In the main repository: pulls from the submodule repository origin.\n\n## Is it safe?\n\nNo! It might delete all your data. Back up everything and proceed with extreme caution.\n\n## What is under the hood?\n\n- Some Node.js code that performs the transformation.\n- Dangerous operations — handle with care!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fand3k5%2Ffrom-submodules-to-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fand3k5%2Ffrom-submodules-to-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fand3k5%2Ffrom-submodules-to-monorepo/lists"}