{"id":28294406,"url":"https://github.com/goto-eof/fromgtog","last_synced_at":"2025-06-30T08:34:25.329Z","repository":{"id":291819955,"uuid":"978302689","full_name":"goto-eof/fromgtog","owner":"goto-eof","description":"Clone ALL repositories from and to GitHub/Gitea/Gitlab/Local","archived":false,"fork":false,"pushed_at":"2025-06-23T18:59:36.000Z","size":17738,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-23T19:43:17.692Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/goto-eof.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}},"created_at":"2025-05-05T19:22:38.000Z","updated_at":"2025-06-23T18:59:39.000Z","dependencies_parsed_at":"2025-05-06T18:25:24.872Z","dependency_job_id":"303b0f90-92d0-4231-85f7-e634eb58edef","html_url":"https://github.com/goto-eof/fromgtog","commit_stats":null,"previous_names":["goto-eof/fromgtog"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/goto-eof/fromgtog","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-eof%2Ffromgtog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-eof%2Ffromgtog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-eof%2Ffromgtog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-eof%2Ffromgtog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/goto-eof","download_url":"https://codeload.github.com/goto-eof/fromgtog/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/goto-eof%2Ffromgtog/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262739414,"owners_count":23356720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-05-22T10:17:44.499Z","updated_at":"2025-06-30T08:34:25.318Z","avatar_url":"https://github.com/goto-eof.png","language":"Java","funding_links":["https://github.com/sponsors/goto-eof"],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\u003cimg src=\"images/fromgtog_header.png\" alt=\"header\" /\u003e\u003c/h1\u003e\n\u003ch1 align=\"right\" id=\"title\"\u003eFromGtoG v. 7.0\u003c/h1\u003e\n\n\u003ch2 id=\"index\"\u003eIndex\u003c/h2\u003e\n\n- [Introduction](#introduction)\n- [News](#news)\n- [Features](#features)\n- [Download (Stable)](#download)\n    - [MacOS](#download-macos)\n    - [Windows](#download-windows)\n    - [Linux](#download-linux)\n- [Screenshot](#screenshot)\n- [For developers](#for-developers)\n- [Tested on](#tested-on)\n- [Support me](#support-me)\n\n\u003ch2 id=\"introduction\"\u003eIntroduction\u003c/h2\u003e\n\nA few days ago, I published FromGtoG 3.0 on the [Ubuntu Snap Store](https://snapcraft.io/fromgtog).\nGiven that the **initial idea** was only to clone code from GitHub to Gitea, following the evolution of the\napplication's features, I realized that it would be useful to **rewrite some functionalities** in order to make the code\n**easier to understand** and therefore more **maintainable**. So, I decided to implement a new version **FromGtoG**, in\nwhich I make extensive use of several **design patterns**, like **Abstract Factory, Strategy, Singleton** and some\nothers, that improve readability and **application modularity**, as well as adding new features, such as **local to\nremote cloning** and clone from/to Gitlab feature.\n\n\u003ch2 id=\"news\"\u003eNews\u003c/h2\u003e\n\n- 2025/06/23 - I discovered that FromGtoG `.deb` package was not working on Debian 10. I rebuilt the package on Debian\n    10. So, now it should work on both Ubuntu latest and Debian 10. I apologize for the inconvenience. Please ping me if\n        you find a bug (\n        open an issue on [GitHub](https://github.com/goto-eof/fromgtog/issues)\n        or [contact me](https://andre-i.eu/#contactme)). The v. 7.0.0 should work now also on Debian 10.\n        You can download it\n        from [here](https://github.com/goto-eof/fromgtog/releases/download/7.0.0/fromgtog_7.0.0_amd64.deb).\n- fixed the windows/linux and macOS packaging - now it is possible to clone from GitHub. The absence of the\n  `jdk.crypto.ec` and `java.security.sasl` imports in the `--add-modules` option, prevented the SSL connections, so the\n  clone process failed, in particular for GitHub (which uses SSL).\n\n\u003ch2 id=\"features\"\u003eFeatures\u003c/h2\u003e\n\nCurrently, the application is able to clone:\n\n- from GitHub to GitHub\\Gitea\\Local\\Gitlab\n- from Gitea to GitHub\\Gitea\\Local\\Gitlab\n- from Gitlab to GitHub\\Gitea\\Local\\Gitlab\n- from Local to GitHub\\Gitea\\Local (copies only git repositories, other directories are skipped)\\Gitlab\n\nFurther features\n\n- multi-threading\n- logging (log file)\n- delete all repositories from:\n    - from GitHub\n    - from Gitea\n    - from Gitlab\n\n\u003ch2 id=\"download\"\u003eDownload (Stable)\u003c/h2\u003e\n\n- \u003ch2 id=\"download-macos\"\u003eMacOS\u003c/h2\u003e\n\n  [Download MacOS installer](https://github.com/goto-eof/fromgtog/releases/download/7.0.0/FromGtoG-7.0.0.pkg)- just\n  install the .pkg file. Note: for copy/paste actions, please use `Control + C` and `Control + V` (I will enable\n  `Command + C` and `Command + V` in the future.)\n\n- \u003ch2 id=\"download-windows\"\u003eWindows\u003c/h2\u003e\n\n  [Download Windows installer](https://github.com/goto-eof/fromgtog/releases/download/7.0.0/FromGtoG-7.0.0.exe)- just\n  install the .exe file and start cloning.\n\n- \u003ch2 id=\"download-linux\"\u003eLinux\u003c/h2\u003e\n\n  [Download Ubuntu .deb package](https://github.com/goto-eof/fromgtog/releases/download/7.0.0/fromgtog_7.0.0_amd64.deb) -\n  in order to install the .deb package execute `sudo dpkg -i romgtog_7.0.0_amd64.deb`\n\n  [Install from Ubutnu Snapstore](https://snapcraft.io/fromgtog) - or execute `sudo snap install fromgtog` in order to\n  install the application.\n\n\u003ch2 id=\"technologies\"\u003eTechnologies/Tools\u003c/h2\u003e\n\nJDK 21, Intellij UI Designer (plugin for Intellij), Slf4J, Lombok, Apache Commons, JSON.\n\n\u003ch2 id=\"screenshot\"\u003eScreenshot\u003c/h2\u003e\n\n![screenshot](images/screenshot.png)\n\n\u003cimg src=\"https://andre-i.eu/api/v1/ipResource/custom.png?host=https://github.com/goto-eof/fromgtog\" onerror=\"this.style.display='none'\" /\u003e\n\n\u003ch2 id=\"for-developers\"\u003eFor developers\u003c/h2\u003e\n\n## Retrieve dependency modules of the jar\n\n```bash\njdeps -s fromgtog.jar\n```\n\n## Generate a standalone for MacOS\n\nIt is necessary to install Xcode Command Line Tools before.\n\n```bash\njpackage --type pkg --name \"FromGtoG\" --vendor \"Andrei Dodu\" --app-version \"7.0.2\" --input \"target\" --main-jar \"fromgtog.jar\" --icon \"resources/icon.icns\" --main-class \"com.andreidodu.fromgtog.Main\" --dest \"executable\" --add-modules java.base,java.desktop,java.net.http,jdk.crypto.ec,java.security.sasl,java.naming,java.sql,java.management,java.security.jgss,java.xml,java.logging --verbose --java-options \"-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dsun.java2d.uiScale=true\"\n```\n\n## Generate a standalone for Windows\n\nIt is necessary to install Wix Toolset before.\n\n```bash\njpackage -t exe --name \"FromGtoG\" --vendor \"Andrei Dodu\" --app-version \"7.0.2\" --input \"target\" --dest \"executable\" --main-jar \"fromgtog.jar\" --icon \"resources\\icon.ico\" --resource-dir resources --add-modules java.base,java.desktop,java.net.http,java.naming,java.sql,java.management,java.security.jgss,java.xml,java.logging,jdk.crypto.ec,java.security.sasl --win-shortcut --win-menu --main-class com.andreidodu.fromgtog.Main\n```\n\n## Generate a standalone for Linux\n\n```bash\njpackage --type deb --name \"FromGtoG\" --vendor \"Andrei Dodu\" --app-version \"7.0.2\" --input \"target\" --main-jar \"fromgtog.jar\" --icon \"resources/icon.png\" --main-class \"com.andreidodu.fromgtog.Main\" --dest \"executable\" --add-modules java.base,java.desktop,java.net.http,java.naming,java.sql,java.management,java.security.jgss,java.xml,java.logging,jdk.crypto.ec,java.security.sasl --linux-shortcut --verbose --linux-package-deps \"libasound2, libpulse0\"\n```\n\n## Usefully commands\n\n```bash\njar tvf fromgtog.jar \n```\n\n```bash\nsudo snap remove fromgtog \u0026\u0026 snapcraft clean \u0026\u0026 snapcraft \u0026\u0026 sudo snap install fromgtog_7.0.2_amd64.snap --dangerous \u0026\u0026 fromgtog\n```\n\n\u003ch2 id=\"tested-on\"\u003eTested on\u003c/h2\u003e\n\n- Ubuntu 25.04\n- Debian 10\n- Windows 11\n- MacOS\n\n\u003ch2 id=\"support-me\"\u003eSupport Me\u003c/h2\u003e\n\nIf you find this project helpful, consider [sponsoring me](https://github.com/sponsors/goto-eof) 💚\n\n[![Sponsor](https://img.shields.io/badge/Sponsor-❤️-brightgreen)](https://github.com/sponsors/goto-eof)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoto-eof%2Ffromgtog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgoto-eof%2Ffromgtog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgoto-eof%2Ffromgtog/lists"}