Improved!

This commit is contained in:
Varun 2020-10-12 16:30:34 +05:30
parent 6c96ff9914
commit 3046f12870
No known key found for this signature in database
GPG Key ID: 93FB46DCF16E0D6F
2 changed files with 76 additions and 53 deletions

View File

@ -8,6 +8,12 @@ import os
config = json.loads(open(os.path.expanduser("./config.json")).read().strip())
def giteaHost(endPoint):
return "{0}/api/v1/{1}".format(config['gitea']['host'],endPoint)
def ghApi():
return Github(config['github']['accesstoken'])
def giteaSession():
session = requests.Session()
session.headers.update({
@ -20,14 +26,52 @@ def giteaSession():
session = giteaSession()
def giteaSetRepoTopics(owner,repo_name,topics):
m = {
"topics":topics,
}
r = session.put("{0}/api/v1/repos/{1}/{2}/topics".format(config['gitea']['host'],owner,repo_name), data=json.dumps(m))
r = session.put(giteaHost("repos/{0}/{1}/topics".format(owner,repo_name)), data=json.dumps(m))
if r.status_code == 204:
print(' ---> SUCCESS : Repository Topics Set')
print(' ---> Success : Repository Topics Set')
else:
print(' ---> ERROR : Unable To SetRepository Topics')
print(' ---> Error : Unable To SetRepository Topics')
def giteaCreateRepo(data,isPrivate):
if isPrivate:
data["auth_username"] = config['github']['username']
data["auth_password"] = "{0}".format(config['github']['accesstoken'])
jsonstring = json.dumps(data)
r = session.post(giteaHost('repos/migrate'), data=jsonstring)
if r.status_code == 201:
print(" ---> Success : Repository Created")
return 'created'
elif r.status_code == 409:
print(" ---> Warning : Repository Already Exists")
return 'exists'
else:
print(r.status_code, r.text, jsonstring,"\n\r")
return 'failure'
def giteaCreateOrg(orgname):
body = {
'full_name' : orgname,
'username' : orgname,
}
jsonstring = json.dumps(body)
r = session.post(giteaHost('orgs/'), data=jsonstring)
if r.status_code != 201:
return 'failed'
return json.loads(r.text)["id"]
def giteaGetUser(username):
r = session.get(giteaHost('users/{0}'.format(username)))
if r.status_code != 200:
return 'failed'
return json.loads(r.text)["id"]

View File

@ -5,38 +5,15 @@ import requests
import json
import sys
import os
from helper import giteaSetRepoTopics
gist_repo_prefix = 'eeee'
from helper import giteaSetRepoTopics,giteaSession,giteaCreateRepo,ghApi,giteaCreateOrg,giteaGetUser
config = json.loads(open(os.path.expanduser("./config.json")).read().strip())
repo_map = config['repomap']
session = requests.Session()
session.headers.update({
"Content-type" : "application/json",
"Authorization" : "token {0}".format(config['gitea']['accesstoken']),
})
session = giteaSession()
gh = ghApi()
gh = Github(config['github']['accesstoken'])
default_gist_user = giteaGetUser('gist')
if default_gist_user == 'failed':
default_gist_user = giteaCreateOrg('gist')
def createOrgInGitea(orgname):
body = {
'full_name' : orgname,
'username' : orgname,
}
jsonstring = json.dumps(body)
r = session.post("{0}/api/v1/orgs/".format(config['gitea']['host'] ), data=jsonstring)
if r.status_code != 201:
return orgname
return json.loads(r.text)["id"]
r = session.get("{0}/api/v1/users/{1}".format(config['gitea']['host'],'gist' ))
if r.status_code != 200:
default_gist_user = createOrgInGitea('gist')
else:
default_gist_user = json.loads(r.text)["id"]
for repo in gh.get_user().get_gists():
if repo.public:
@ -46,17 +23,26 @@ for repo in gh.get_user().get_gists():
print('Gist : {0}/{1}'.format(repo.owner.login,repo.id))
r = session.get("{0}/api/v1/users/{1}".format(config['gitea']['host'],repo.owner.login ))
if r.status_code != 200:
prefix = ''
surfix = ''
gitea_uid = giteaGetUser(repo.owner.login)
repo_owner = repo.owner.login
if gitea_uid == 'failed':
gitea_uid = giteaCreateOrg(repo.owner.login)
if gitea_uid == 'failed':
gitea_uid = default_gist_user
repo_owner = 'gist'
else:
gitea_uid = json.loads(r.text)["id"]
repo_owner = repo.owner.login
if len(config['gitea']['gist']['prefix']) != 0:
prefix = "{0}-".format(config['gitea']['gist']['prefix'])
if len(config['gitea']['gist']['surfix']) != 0:
surfix = "-{0}".format(config['gitea']['gist']['surfix'])
m = {
"repo_name" : "{0}-{1}".format(gist_repo_prefix,repo.id),
"repo_name" : "{0}{1}{2}".format(prefix,repo.id,surfix),
"description" : (repo.description or "not really known")[:255],
"clone_addr" : repo.git_pull_url,
"mirror" : True,
@ -64,23 +50,16 @@ for repo in gh.get_user().get_gists():
"uid" : gitea_uid,
}
if isPrivate:
m["auth_username"] = config['github']['username']
m["auth_password"] = "{0}".format(config['github']['accesstoken'])
status = giteaCreateRepo(m,isPrivate)
jsonstring = json.dumps(m)
r = session.post("{0}/api/v1/repos/migrate".format(config['gitea']['host']), data=jsonstring)
if r.status_code == 201:
if status == 'created':
topics = ['gist','{0}-gist'.format(repo_owner)]
if isPrivate:
topics = ['gist','secret-gist',"{0}-gist".format(repo_owner),"secret-{0}-gist".format(repo_owner)]
topics.append('secret-gist')
topics.append('secret-{0}-gist'.format(repo_owner))
else:
topics = ['gist','public-gist',"{0}-gist".format(repo_owner),"public-{0}-gist".format(repo_owner)]
print(" ---> Success : Repository Created\n\r".format(repo_owner,repo.id))
topics.append('public-gist')
topics.append('public-{0}-gist'.format(repo_owner))
giteaSetRepoTopics(repo_owner,m["repo_name"],topics)
elif r.status_code == 409:
print(" ---> Warning : Repository Already Exists\n\r".format(repo_owner,repo.id))
else:
print(r.status_code, r.text, jsonstring,"\n\r")
print(" ")