An open API service indexing awesome lists of open source software.

https://github.com/goto-eof/fromgtog

Clone ALL repositories from and to GitHub/Gitea/Gitlab/Local
https://github.com/goto-eof/fromgtog

Last synced: about 1 year ago
JSON representation

Clone ALL repositories from and to GitHub/Gitea/Gitlab/Local

Awesome Lists containing this project

README

          

header


FromGtoG v. 7.0

Index

- [Introduction](#introduction)
- [News](#news)
- [Features](#features)
- [Download (Stable)](#download)
- [MacOS](#download-macos)
- [Windows](#download-windows)
- [Linux](#download-linux)
- [Screenshot](#screenshot)
- [For developers](#for-developers)
- [Tested on](#tested-on)
- [Support me](#support-me)

Introduction

A few days ago, I published FromGtoG 3.0 on the [Ubuntu Snap Store](https://snapcraft.io/fromgtog).
Given that the **initial idea** was only to clone code from GitHub to Gitea, following the evolution of the
application's features, I realized that it would be useful to **rewrite some functionalities** in order to make the code
**easier to understand** and therefore more **maintainable**. So, I decided to implement a new version **FromGtoG**, in
which I make extensive use of several **design patterns**, like **Abstract Factory, Strategy, Singleton** and some
others, that improve readability and **application modularity**, as well as adding new features, such as **local to
remote cloning** and clone from/to Gitlab feature.

News

- 2025/06/23 - I discovered that FromGtoG `.deb` package was not working on Debian 10. I rebuilt the package on Debian
10. So, now it should work on both Ubuntu latest and Debian 10. I apologize for the inconvenience. Please ping me if
you find a bug (
open an issue on [GitHub](https://github.com/goto-eof/fromgtog/issues)
or [contact me](https://andre-i.eu/#contactme)). The v. 7.0.0 should work now also on Debian 10.
You can download it
from [here](https://github.com/goto-eof/fromgtog/releases/download/7.0.0/fromgtog_7.0.0_amd64.deb).
- fixed the windows/linux and macOS packaging - now it is possible to clone from GitHub. The absence of the
`jdk.crypto.ec` and `java.security.sasl` imports in the `--add-modules` option, prevented the SSL connections, so the
clone process failed, in particular for GitHub (which uses SSL).

Features

Currently, the application is able to clone:

- from GitHub to GitHub\Gitea\Local\Gitlab
- from Gitea to GitHub\Gitea\Local\Gitlab
- from Gitlab to GitHub\Gitea\Local\Gitlab
- from Local to GitHub\Gitea\Local (copies only git repositories, other directories are skipped)\Gitlab

Further features

- multi-threading
- logging (log file)
- delete all repositories from:
- from GitHub
- from Gitea
- from Gitlab

Download (Stable)

-

MacOS

[Download MacOS installer](https://github.com/goto-eof/fromgtog/releases/download/7.0.0/FromGtoG-7.0.0.pkg)- just
install the .pkg file. Note: for copy/paste actions, please use `Control + C` and `Control + V` (I will enable
`Command + C` and `Command + V` in the future.)

-

Windows

[Download Windows installer](https://github.com/goto-eof/fromgtog/releases/download/7.0.0/FromGtoG-7.0.0.exe)- just
install the .exe file and start cloning.

-

Linux

[Download Ubuntu .deb package](https://github.com/goto-eof/fromgtog/releases/download/7.0.0/fromgtog_7.0.0_amd64.deb) -
in order to install the .deb package execute `sudo dpkg -i romgtog_7.0.0_amd64.deb`

[Install from Ubutnu Snapstore](https://snapcraft.io/fromgtog) - or execute `sudo snap install fromgtog` in order to
install the application.

Technologies/Tools

JDK 21, Intellij UI Designer (plugin for Intellij), Slf4J, Lombok, Apache Commons, JSON.

Screenshot

![screenshot](images/screenshot.png)

For developers

## Retrieve dependency modules of the jar

```bash
jdeps -s fromgtog.jar
```

## Generate a standalone for MacOS

It is necessary to install Xcode Command Line Tools before.

```bash
jpackage --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"
```

## Generate a standalone for Windows

It is necessary to install Wix Toolset before.

```bash
jpackage -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
```

## Generate a standalone for Linux

```bash
jpackage --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"
```

## Usefully commands

```bash
jar tvf fromgtog.jar
```

```bash
sudo snap remove fromgtog && snapcraft clean && snapcraft && sudo snap install fromgtog_7.0.2_amd64.snap --dangerous && fromgtog
```

Tested on

- Ubuntu 25.04
- Debian 10
- Windows 11
- MacOS

Support Me

If you find this project helpful, consider [sponsoring me](https://github.com/sponsors/goto-eof) 💚

[![Sponsor](https://img.shields.io/badge/Sponsor-❤️-brightgreen)](https://github.com/sponsors/goto-eof)