# g2g Simple Gitea hook / service who mirroring all your Gitea repo to Github (with git push --mirror).
*Tested only on Alpine-Linux with Gitea server.*
*The script requires bash, jq, curl, grep and git.*
This should be easily adapted to other distributions without too many modifications, it should certainly be necessary to modify the location where the cronjob is installed (/etc/periodic/15min) for Debian/Arch/... based system.
**BE VERY CAREFUL !! :
If a Github repo already exists with the same name as a Gitea repo but with different content, the whole Github repository will be overwritten !**
### How the hook is triggered : - Every 15min, a cronjob install the hook in the repos of the configured . - Every 15min, a cronjob launches the synchronization of the whole repo (git push --mirror). - When a Gitea depo receives a push, the hook (.hooks/post-receive.d/github_mirror) is triggered and start the synchronization on Github. ### What does the script do : - Clone your Gitea repositories on Github. - Automatically create a new repository on Github if it does not exist. - Synchronize the description. - Synchronize the stat (private/public) of the repository. ### What the script doesn't do : - Does not manage several different accounts. - Do not delete any Github repo (if you delete a Gitea repo, you will have to do it manually on Github). - Does not synchronize anything from Github to Gitea. *(The creation of Github repositories and the retrieval of information from Gitea repositories is done through the official API with curl).*
#### Install ```shell apk add bash jq curl grep wget "https://git.rokin.in/Rokin/gitea2github/raw/branch/master/g2g.sh" cp -f g2g.sh /usr/bin/g2g chown root:root /usr/bin/g2g chmod 755 /usr/bin/g2g g2g service install ``` #### Uninstall ```shell g2g hook uninstall g2g service uninstall rm -f /usr/bin/g2g ``` #### Usage ```shell #Manual push (single repo): g2g mirror #Manual push (all repo): /etc/periodic/15min/github_mirror_sync ```