Browse Source

update readme

migrate-to-golang
Dennis Jekubczyk 3 years ago
parent
commit
f878f266c5
1 changed files with 73 additions and 26 deletions
  1. +73
    -26
      README.md

+ 73
- 26
README.md

@ -7,52 +7,99 @@
## Description ## Description
This script mirrors automatically the public repositories from a github-user or github-organization to your gitea server.
It will - once started - create a mirrored repository under a given token for a gitea user fully automatically.
`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.
Example:
A github user `github-user` has public repositories `dotfiles` and `zsh-config`.
Starting the script with a gitea token for the account `gitea-user` will create the following mirror repositories:
### 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/dotfiles ← some-gitea.url/gitea-user/dotfiles
- github.com/github-user/zsh-config ← some-gitea.url/zsh-config/dotfiles - github.com/github-user/zsh-config ← some-gitea.url/zsh-config/dotfiles
The mirror settings are default by your gitea instance. The mirror settings are default by your gitea instance.
## Prerequisites
#### 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
- Something to mirror (a github user or organization with public repos)
- Gitea instance up and running
- User for Gitea with generated token
- Docker
##### Optional
## Run it
- `MIRROR_REPOSITORIES` `PUBLIC` (optional, is default)
- `GITHUB_TOKEN` Github personal access token (optional to avoid rate limits)
```sh ```sh
docker container run \ docker container run \
-d \ -d \
--restart always \ --restart always \
-e GITHUB_USERNAME=github-user \
-e MIRROR_REPOSITORIES='PUBLIC' \
-e GITHUB_USERNAME='github-user' \
-e GITHUB_TOKEN='<optional-github-token>' \
-e GITEA_URL=https://some-gitea.url \ -e GITEA_URL=https://some-gitea.url \
-e GITEA_TOKEN=please-exchange-with-token \
-e GITEA_TOKEN='<gitea-token>' \
jaedle/mirror-to-gitea:latest 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.
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.
### Parameters
## Run private repository mirrors
- `GITHUB_USERNAME` name of user or organization which public repos should be mirrored
- `GITHUB_TOKEN` [GitHub personal access token](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token) (optional)
##### Mandatory
- `MIRROR_MODE` 'PRIVATE_AND_PUBLIC'
- `GITHUB_TOKEN` Github personal access token
- `GITEA_URL` url of your gitea server - `GITEA_URL` url of your gitea server
- `GITEA_TOKEN` token for your gitea user - `GITEA_TOKEN` token for your gitea user
## Things to do
- refactoring
- think about how to test
- configurable interval
- better logging
- use github token to solve problems with rate limits
- add gitlab support
- and so on..
```sh
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
```

Loading…
Cancel
Save