Mirror your github repositories to your gitea server
Badges
Description
mirror-to-gitea automatically creates repository mirrors from a Github User to your gitea server. The hard work (
continous mirroring) is done by Gitea on a continuous basis.
Modes
There a different usage modes:
- mirror only public repositories: No authentication on Github required. You may utilize an optional Github token to avoid rate limits
- Mirror public and private repositories: Authentication for Github required.
Prerequisites
Mandatory
- Something to mirror from Github (repositories from a Github user)
- An application token for a gitea instance
Optional
- A Github token (to avoid rate limits or to mirror private repositories)
Examples
Mirror public repositories
A github user github-user has the public repositories dotfiles and zsh-config. Starting the script with a gitea
token for the account gitea-user will create the following mirror repositories:
- github.com/github-user/dotfiles ← some-gitea.url/gitea-user/dotfiles
- github.com/github-user/zsh-config ← some-gitea.url/zsh-config/dotfiles
The mirror settings are default by your gitea instance.
Mirror private repositories
You obtained a github token for github-user which has a public repository public-example a private
repository private-example. Running the mirroring process for gitea-user will create the following mirror
repositories:
- github.com/github-user/public-example ← some-gitea.url/gitea-user/public-example
- github.com/github-user/private-example ← some-gitea.url/zsh-config/private-example
The mirror settings are default by your gitea instance.
Run public repository mirrors
Parameters
Mirror public repositories
Mandatory
GITHUB_USERNAMEname of user with public repos should be mirroredGITEA_URLurl of your gitea serverGITEA_TOKENtoken for your gitea user
Optional
MIRROR_REPOSITORIESPUBLIC(optional, is default)GITHUB_TOKENGithub personal access token (optional to avoid rate limits)
docker container run \
-d \
--restart always \
-e MIRROR_REPOSITORIES='PUBLIC' \
-e GITHUB_USERNAME='github-user' \
-e GITHUB_TOKEN='<optional-github-token>' \
-e GITEA_URL=https://some-gitea.url \
-e GITEA_TOKEN='<gitea-token>' \
jaedle/mirror-to-gitea:latest
This will a spin up a docker container running infinite which will try to mirror all your repositories once every hour to your gitea server.
Run private repository mirrors
Mandatory
MIRROR_MODE'PRIVATE_AND_PUBLIC'GITHUB_TOKENGithub personal access tokenGITEA_URLurl of your gitea serverGITEA_TOKENtoken for your gitea user
docker container run \
-d \
--restart always \
-e MIRROR_MODE='PRIVATE_AND_PUBLIC' \
-e GITHUB_TOKEN='<github-token>' \
-e GITEA_URL=https://some-gitea.url \
-e GITEA_TOKEN=please-exchange-with-token \
jaedle/mirror-to-gitea:latest