From 455423592a40beafae6f25ff1fa083689604cfc7 Mon Sep 17 00:00:00 2001 From: Varun Date: Tue, 13 Oct 2020 10:37:50 +0530 Subject: [PATCH] Major Improvments.! --- config.json | 21 ----------- gist.py | 13 +++++++ giststared.py | 13 +++++++ mirror.py | 32 +++-------------- repositoryForked.py | 52 +++++----------------------- repositorySource.py | 50 +++++--------------------- repositoryStared.py | 52 +++++----------------------- gistsSource.py => src/gistsSource.py | 8 ++--- gistsStared.py => src/gistsStared.py | 8 ++--- helper.py => src/helper.py | 10 ++++++ src/repositoryForked.py | 47 +++++++++++++++++++++++++ src/repositorySource.py | 45 ++++++++++++++++++++++++ src/repositoryStared.py | 47 +++++++++++++++++++++++++ 13 files changed, 215 insertions(+), 183 deletions(-) delete mode 100644 config.json create mode 100644 gist.py create mode 100644 giststared.py rename gistsSource.py => src/gistsSource.py (88%) rename gistsStared.py => src/gistsStared.py (88%) rename helper.py => src/helper.py (93%) create mode 100644 src/repositoryForked.py create mode 100644 src/repositorySource.py create mode 100644 src/repositoryStared.py diff --git a/config.json b/config.json deleted file mode 100644 index d82021f..0000000 --- a/config.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "github" : { - "username" : "", - "accesstoken" : "" - }, - "gitea" : { - "host" : "", - "accesstoken" : "", - "username" : "", - "gist" : { - "prefix" : "gist", - "surfix" : "" - } - }, - "repomap" : { }, - "gistsSource" : true, - "gistsStared" : true, - "repositoryStared" : true, - "repositorySource" : true, - "repositoryForked" : true -} diff --git a/gist.py b/gist.py new file mode 100644 index 0000000..747a81c --- /dev/null +++ b/gist.py @@ -0,0 +1,13 @@ +import sys + +sys.path.insert(1, './src/') + +from helper import getConfig,log +from gistsSource import gistsSource + +config = getConfig() + +if config['gistsSource']: + log('Setting Up Mirror For Source Github Gists') + gistsSource() + log('Finished') diff --git a/giststared.py b/giststared.py new file mode 100644 index 0000000..b8fb951 --- /dev/null +++ b/giststared.py @@ -0,0 +1,13 @@ +import sys + +sys.path.insert(1, './src/') + +from helper import log,getConfig +from gistsStared import gistsStared + +config = getConfig() + +if config['gistsStared']: + log('Setting Up Mirror For Stared Github Gists') + gistsStared() + log('Finished') diff --git a/mirror.py b/mirror.py index 89b1a65..ddd45bc 100644 --- a/mirror.py +++ b/mirror.py @@ -1,29 +1,7 @@ #!/usr/bin/env python -from helper import getConfig -from gistsSource import gistsSource -from gistsStared import gistsStared -from repositorySource import repositorySource -from repositoryStared import repositoryStared -from repositoryForked import repositoryForked -config = getConfig() - -if config['gistsSource']: - print('Setting Up Mirror For Source Github Gists') - #gistsSource() - -if config['gistsStared']: - print('Setting Up Mirror For Stared Github Gists') - gistsStared() - -if config['repositorySource']: - print('Setting Up Mirror For Source Github Repository') - #repositorySource() - -if config['repositoryStared']: - print('Setting Up Mirror For Stared Github Repository') - #repositoryStared() - -if config['repositoryForked']: - print('Setting Up Mirror For Forked Github Repository') - #repositoryForked() +import gist +import giststared +import repositoryForked +import repositorySource +import repositoryStared diff --git a/repositoryForked.py b/repositoryForked.py index 46bfbec..9dded5e 100644 --- a/repositoryForked.py +++ b/repositoryForked.py @@ -1,47 +1,13 @@ -#!/usr/bin/env python -# https://github.com/PyGithub/PyGithub -from helper import getConfig,giteaCreateUserOrOrg,giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser,config +import sys -def repositoryForked(): - config = getConfig() - repo_map = config['repomap'] - session = giteaSession() - gh = ghApi() +sys.path.insert(1, './src/') - for repo in gh.get_user().get_repos(): - if repo.fork: - real_repo = repo.full_name.split('/')[1] - gitea_dest_user = repo.owner.login - repo_owner=repo.owner.login +from helper import log,getConfig +from repositoryForked import repositoryForked - print('Forked Repository : {0}'.format(repo.full_name)) +config = getConfig() - if real_repo in repo_map: - gitea_dest_user = repo_map[real_repo] - - gitea_uid = giteaGetUser(gitea_dest_user) - - if gitea_uid == 'failed': - gitea_uid = giteaCreateUserOrOrg(gitea_dest_user,repo.owner.type) - - repo_name = "{0}".format(real_repo) - - m = { - "repo_name" : repo_name, - "description" : (repo.description or "not really known")[:255], - "clone_addr" : repo.clone_url, - "mirror" : True, - "private" : repo.private, - "uid" : gitea_uid, - } - - status = giteaCreateRepo(m,repo.private) - if status != 'failed': - topics = repo.get_topics() - topics.append('forked-repo') - topics.append('forked-{0}-repo'.format(repo_owner)) - giteaSetRepoTopics(repo_owner,repo_name,topics) - else: - print(repo) - - print(" ") \ No newline at end of file +if config['repositoryForked']: + log('Setting Up Mirror For Forked Github Repository') + repositoryForked() + log('Finished') diff --git a/repositorySource.py b/repositorySource.py index 63a937f..f799882 100644 --- a/repositorySource.py +++ b/repositorySource.py @@ -1,45 +1,13 @@ -#!/usr/bin/env python -# https://github.com/PyGithub/PyGithub -from helper import getConfig,giteaCreateUserOrOrg,giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser,config +import sys -def repositorySource(): - config = getConfig() - repo_map = config['repomap'] - session = giteaSession() - gh = ghApi() +sys.path.insert(1, './src/') - for repo in gh.get_user().get_repos(): - if not repo.fork: - real_repo = repo.full_name.split('/')[1] - gitea_dest_user = repo.owner.login - repo_owner=repo.owner.login +from helper import log,getConfig +from repositorySource import repositorySource - print('Source Repository : {0}'.format(repo.full_name)) +config = getConfig() - if real_repo in repo_map: - gitea_dest_user = repo_map[real_repo] - - gitea_uid = giteaGetUser(gitea_dest_user) - - if gitea_uid == 'failed': - gitea_uid = giteaCreateUserOrOrg(gitea_dest_user,repo.owner.type) - - repo_name = "{0}".format(real_repo) - - m = { - "repo_name" : repo_name, - "description" : (repo.description or "not really known")[:255], - "clone_addr" : repo.clone_url, - "mirror" : True, - "private" : repo.private, - "uid" : gitea_uid, - } - - status = giteaCreateRepo(m,repo.private) - if status != 'failed': - topics = repo.get_topics() - giteaSetRepoTopics(repo_owner,repo_name,topics) - else: - print(repo) - - print(" ") \ No newline at end of file +if config['repositorySource']: + log('Setting Up Mirror For Source Github Repository') + repositorySource() + log('Finished') diff --git a/repositoryStared.py b/repositoryStared.py index a6a41c4..e751c40 100644 --- a/repositoryStared.py +++ b/repositoryStared.py @@ -1,47 +1,13 @@ -#!/usr/bin/env python -# https://github.com/PyGithub/PyGithub -from helper import getConfig,giteaSetRepoTopics,giteaSession,giteaSetRepoStar,giteaCreateRepo,ghApi,giteaCreateUserOrOrg,giteaGetUser,config +import sys -def repositoryStared(): - config = getConfig() - repo_map = config['repomap'] - session = giteaSession() - gh = ghApi() +sys.path.insert(1, './src/') - for repo in gh.get_user().get_starred(): - real_repo = repo.full_name.split('/')[1] - gitea_dest_user = repo.owner.login - repo_owner=repo.owner.login +from helper import log,getConfig +from repositoryStared import repositoryStared - print('⭐ Star\'ed Repository : {0}'.format(repo.full_name)) +config = getConfig() - if real_repo in repo_map: - gitea_dest_user = repo_map[real_repo] - - gitea_uid = giteaGetUser(gitea_dest_user) - - if gitea_uid == 'failed': - gitea_uid = giteaCreateUserOrOrg(gitea_dest_user,repo.owner.type) - - repo_name = "{0}".format(real_repo) - - m = { - "repo_name" : repo_name, - "description" : (repo.description or "not really known")[:255], - "clone_addr" : repo.clone_url, - "mirror" : True, - "private" : repo.private, - "uid" : gitea_uid, - } - - status = giteaCreateRepo(m,repo.private) - if status != 'failed': - topics = repo.get_topics() - topics.append('starred-repo') - topics.append('starred-{0}-repo'.format(repo_owner)) - giteaSetRepoTopics(repo_owner,repo_name,topics) - giteaSetRepoStar(repo_owner,repo_name) - else: - print(repo) - - print(" ") \ No newline at end of file +if config['repositoryStared']: + log('Setting Up Mirror For Stared Github Repository') + repositoryStared() + log('Finished') diff --git a/gistsSource.py b/src/gistsSource.py similarity index 88% rename from gistsSource.py rename to src/gistsSource.py index fb13e17..6d8b2ed 100644 --- a/gistsSource.py +++ b/src/gistsSource.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # https://github.com/PyGithub/PyGithub -from helper import getConfig,giteaCreateUserOrOrg, giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser +from helper import log,getConfig,giteaCreateUserOrOrg, giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser def gistsSource(): config = getConfig() @@ -18,7 +18,7 @@ def gistsSource(): else: isPrivate= True - print('Gist : {0}/{1}'.format(repo.owner.login,repo.id)) + log('Gist : {0}/{1}'.format(repo.owner.login,repo.id)) prefix = '' surfix = '' @@ -60,6 +60,6 @@ def gistsSource(): giteaSetRepoTopics(repo_owner,m["repo_name"],topics) if status == 'failed': - print(repo) + log(repo) - print(" ") \ No newline at end of file + log(False) \ No newline at end of file diff --git a/gistsStared.py b/src/gistsStared.py similarity index 88% rename from gistsStared.py rename to src/gistsStared.py index 02b464d..dc8bc7c 100644 --- a/gistsStared.py +++ b/src/gistsStared.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # https://github.com/PyGithub/PyGithub -from helper import getConfig,giteaCreateUserOrOrg,giteaSetRepoStar, giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser +from helper import log,getConfig,giteaCreateUserOrOrg,giteaSetRepoStar, giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser def gistsStared(): config = getConfig() @@ -18,7 +18,7 @@ def gistsStared(): else: isPrivate= True - print('Gist : {0}/{1}'.format(repo.owner.login,repo.id)) + log('Gist : {0}/{1}'.format(repo.owner.login,repo.id)) prefix = '' surfix = '' @@ -61,6 +61,6 @@ def gistsStared(): giteaSetRepoStar(repo_owner,m["repo_name"]) if status == 'failed': - print(repo) + log(repo) - print(" ") \ No newline at end of file + log(False) \ No newline at end of file diff --git a/helper.py b/src/helper.py similarity index 93% rename from helper.py rename to src/helper.py index 23abbf9..c4001c0 100644 --- a/helper.py +++ b/src/helper.py @@ -5,11 +5,21 @@ import requests import json import sys import os +from datetime import datetime giteaGetUserCache = dict() THIS_FOLDER = os.path.dirname(os.path.abspath(__file__)) config = json.loads(open(os.path.expanduser("{0}/config.json".format(THIS_FOLDER))).read().strip()) +def log(val): + if val == False: + print(" ") + else: + now = datetime.now() + dt_string = now.strftime("%d/%m/%Y %H:%M:%S") + print("[{0}] {1}".format(dt_string,val)) + + def getConfig(): return config diff --git a/src/repositoryForked.py b/src/repositoryForked.py new file mode 100644 index 0000000..614822a --- /dev/null +++ b/src/repositoryForked.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +# https://github.com/PyGithub/PyGithub +from helper import log,getConfig,giteaCreateUserOrOrg,giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser,config + +def repositoryForked(): + config = getConfig() + repo_map = config['repomap'] + session = giteaSession() + gh = ghApi() + + for repo in gh.get_user().get_repos(): + if repo.fork: + real_repo = repo.full_name.split('/')[1] + gitea_dest_user = repo.owner.login + repo_owner=repo.owner.login + + log('Forked Repository : {0}'.format(repo.full_name)) + + if real_repo in repo_map: + gitea_dest_user = repo_map[real_repo] + + gitea_uid = giteaGetUser(gitea_dest_user) + + if gitea_uid == 'failed': + gitea_uid = giteaCreateUserOrOrg(gitea_dest_user,repo.owner.type) + + repo_name = "{0}".format(real_repo) + + m = { + "repo_name" : repo_name, + "description" : (repo.description or "not really known")[:255], + "clone_addr" : repo.clone_url, + "mirror" : True, + "private" : repo.private, + "uid" : gitea_uid, + } + + status = giteaCreateRepo(m,repo.private) + if status != 'failed': + topics = repo.get_topics() + topics.append('forked-repo') + topics.append('forked-{0}-repo'.format(repo_owner)) + giteaSetRepoTopics(repo_owner,repo_name,topics) + else: + log(repo) + + log(False) \ No newline at end of file diff --git a/src/repositorySource.py b/src/repositorySource.py new file mode 100644 index 0000000..684af6d --- /dev/null +++ b/src/repositorySource.py @@ -0,0 +1,45 @@ +#!/usr/bin/env python +# https://github.com/PyGithub/PyGithub +from helper import log,getConfig,giteaCreateUserOrOrg,giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser,config + +def repositorySource(): + config = getConfig() + repo_map = config['repomap'] + session = giteaSession() + gh = ghApi() + + for repo in gh.get_user().get_repos(): + if not repo.fork: + real_repo = repo.full_name.split('/')[1] + gitea_dest_user = repo.owner.login + repo_owner=repo.owner.login + + log('Source Repository : {0}'.format(repo.full_name)) + + if real_repo in repo_map: + gitea_dest_user = repo_map[real_repo] + + gitea_uid = giteaGetUser(gitea_dest_user) + + if gitea_uid == 'failed': + gitea_uid = giteaCreateUserOrOrg(gitea_dest_user,repo.owner.type) + + repo_name = "{0}".format(real_repo) + + m = { + "repo_name" : repo_name, + "description" : (repo.description or "not really known")[:255], + "clone_addr" : repo.clone_url, + "mirror" : True, + "private" : repo.private, + "uid" : gitea_uid, + } + + status = giteaCreateRepo(m,repo.private) + if status != 'failed': + topics = repo.get_topics() + giteaSetRepoTopics(repo_owner,repo_name,topics) + else: + log(repo) + + log(False) \ No newline at end of file diff --git a/src/repositoryStared.py b/src/repositoryStared.py new file mode 100644 index 0000000..a4eee59 --- /dev/null +++ b/src/repositoryStared.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +# https://github.com/PyGithub/PyGithub +from helper import log,getConfig,giteaSetRepoTopics,giteaSession,giteaSetRepoStar,giteaCreateRepo,ghApi,giteaCreateUserOrOrg,giteaGetUser,config + +def repositoryStared(): + config = getConfig() + repo_map = config['repomap'] + session = giteaSession() + gh = ghApi() + + for repo in gh.get_user().get_starred(): + real_repo = repo.full_name.split('/')[1] + gitea_dest_user = repo.owner.login + repo_owner=repo.owner.login + + log('⭐ Star\'ed Repository : {0}'.format(repo.full_name)) + + if real_repo in repo_map: + gitea_dest_user = repo_map[real_repo] + + gitea_uid = giteaGetUser(gitea_dest_user) + + if gitea_uid == 'failed': + gitea_uid = giteaCreateUserOrOrg(gitea_dest_user,repo.owner.type) + + repo_name = "{0}".format(real_repo) + + m = { + "repo_name" : repo_name, + "description" : (repo.description or "not really known")[:255], + "clone_addr" : repo.clone_url, + "mirror" : True, + "private" : repo.private, + "uid" : gitea_uid, + } + + status = giteaCreateRepo(m,repo.private) + if status != 'failed': + topics = repo.get_topics() + topics.append('starred-repo') + topics.append('starred-{0}-repo'.format(repo_owner)) + giteaSetRepoTopics(repo_owner,repo_name,topics) + giteaSetRepoStar(repo_owner,repo_name) + else: + log(repo) + + log(False) \ No newline at end of file