mirror of
https://github.com/SrIzan10/gitea-github-repogen.git
synced 2026-06-06 00:56:47 +00:00
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
import requests
|
|
import json
|
|
|
|
with open("config.json") as config_file:
|
|
config = json.load(config_file)
|
|
|
|
print(config)
|
|
|
|
gh_user = config["github"]["user"]
|
|
gh_token = config["github"]["token"]
|
|
gitea_url = config["gitea"]["url"]
|
|
gitea_user = config["gitea"]["user"]
|
|
gitea_token = config["gitea"]["token"]
|
|
|
|
gh_repo_list = requests.get(
|
|
f"https://api.github.com/users/{gh_user}/repos",
|
|
headers={"Authorization": f"Bearer {gh_token}"},
|
|
).json()
|
|
gh_repo_list = [repo["name"] for repo in gh_repo_list]
|
|
gitea_repo_list = requests.get(
|
|
f"{gitea_url}/api/v1/users/{gitea_user}/repos",
|
|
headers={"Authorization": f"token {gitea_token}"},
|
|
).json()
|
|
gitea_repo_list = [repo["name"] for repo in gitea_repo_list]
|
|
repos_to_migrate = [repo for repo in gh_repo_list if repo not in gitea_repo_list]
|
|
|
|
for repo in repos_to_migrate:
|
|
print(f"Migrating {repo}...")
|
|
migrate_request = requests.post(
|
|
f"{gitea_url}/api/v1/repos/migrate",
|
|
headers={"Authorization": f"token {gitea_token}"},
|
|
json={
|
|
"auth_password": gh_token,
|
|
"auth_username": gh_user,
|
|
"clone_addr": f"https://github.com/{gh_user}/{repo}",
|
|
"repo_name": repo,
|
|
"mirror": True,
|
|
"repo_owner": gitea_user,
|
|
},
|
|
)
|
|
print(
|
|
"Migrated",
|
|
"successfully!" if migrate_request.status_code == 201 else "unsuccessfully!",
|
|
)
|