Syncs your gitea instance with your Github account
Project description
gitea-github-sync
gitea-github-sync provides a simple CLI to sync Github repositories to your Gitea instance.
Installation
pip install gitea-github-sync
If you are interested in using a pre-packaged docker image, please look at the Docker Readme
Setup
Create a file in $HOME/.config/gitea-github-sync/config.yml
with the following template and fill up the missing values:
gitea_api_url: https://<your-gitea-instance>/api/v1
gitea_token: <your-gitea-token>
github_token: <your-github-token>
Creating a Gitea token
Go to https://<your-local-gitea-instance>/user/settings/applications and generate a new token.
Creating a Github token
Go to https://github.com/settings/tokens/new and create a token with the following values set:
- Note: this is a note to help you understand how the token is used.
- Expiration: No expiration
- repo: Select all of repo
Github token limitation
Github allows you to create Personal access tokens. These tokens now exist in two different flavors:
- Fine-grained tokens
- Classic tokens
Both work with gitea-github-sync, but given that Gitea does not allow the modification of the access token through the API, a non-expiring token must be used which limits the usage to Classic tokens.
Usage
gitea-github-sync --help
Shows the help
gitea-github-sync list-all-gitea-repositories
Lists all available Gitea repositories in your account
gitea-github-sync list-all-github-repositories
Lists all available Github repositories in your account
gitea-github-sync migrate-repo FULL_REPO_NAME
Migrates one repo from Github to Gitea
gitea-github-sync sync
Migrates all repos not present in Gitea from Github
Automate gitea-github-sync execution
There are multiple ways to automate the execution of gitea-github-sync. One of them is using cron:
First, execute crontab -e
to open the cron configuration file in edit mode.
Then add the following line:
0 12 * * * gitea-github-sync sync
This will execute the sync operation every day at twelve.
Limitations
When using the migration feature of Gitea, a Github token must be passed for Gitea to continuously pull the new changes from Github.
The token used by gitea-github-sync to list repositories is the same that is used by Gitea for continuous monitoring. Updating the value of this token is unfortunately not possible through the API as of now.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file gitea_github_sync-0.2.0.tar.gz
.
File metadata
- Download URL: gitea_github_sync-0.2.0.tar.gz
- Upload date:
- Size: 5.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.8.18 Linux/6.5.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d46a343a2907195cd9174a7f9625c92ee4333a804120b0cdf72a79be6ac31d5e |
|
MD5 | cc54fa009dbfba6e68276e78d13279be |
|
BLAKE2b-256 | 7b4f3bf9144de73f47afcc3883203e4bf0935ce6279e865c022cb16f3db40dcf |
File details
Details for the file gitea_github_sync-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: gitea_github_sync-0.2.0-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.8.18 Linux/6.5.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 836d2ec8e16c44a7fafe57a4e29638106f6c3ff11a954f3ec144c22b6c9d0ae6 |
|
MD5 | a0258157a3bdf37ad097cbf1eafdc701 |
|
BLAKE2b-256 | fc962e18e1b7fbc1f2ff60832c7011ceca2aa4dff82c070adb1bbdda3be51db8 |