You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Dennis Jekubczyk 5bde8d1f36 refactoring 2 years ago
.github/workflows fix ci 2 years ago
build move main 2 years ago
cmd move main 2 years ago
internal refactoring 2 years ago
third_party/golangci-lint add linter 2 years ago
vendor parse github configuration 2 years ago
.gitignore initial commit 5 years ago
.tool-versions bootstrap go 2 years ago
LICENSE upgrade license 2 years ago
README.md update readme 2 years ago
Taskfile.yml add formating 2 years ago
go.mod vendor dependencies 2 years ago
go.sum vendor dependencies 2 years ago
run-local.sh initial commit 5 years ago

README.md

Mirror your github repositories to your gitea server

Badges

image pulls microbadger analysis

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:

  1. mirror only public repositories: No authentication on Github required. You may utilize an optional Github token to avoid rate limits
  2. 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_USERNAME name of user with public repos should be mirrored
  • GITEA_URL url of your gitea server
  • GITEA_TOKEN token for your gitea user
Optional
  • MIRROR_REPOSITORIES PUBLIC (optional, is default)
  • GITHUB_TOKEN Github 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_TOKEN Github personal access token
  • GITEA_URL url of your gitea server
  • GITEA_TOKEN token 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