66import json
77
88
9- def create_repository (owner , repo , token ):
9+ def create_orgs_repository (owner , repo , token ):
1010 url = f'https://gitee.com/api/v5/orgs/{ owner } /repos' # organization
1111 data = {}
1212 data ["access_token" ] = token
@@ -27,22 +27,41 @@ def create_repository(owner, repo, token):
2727 return json .loads (resp )
2828
2929
30- def get_or_create_repository (owner , repo , token ):
30+ def create_user_repository (repo , token ):
31+ url = 'https://gitee.com/api/v5/user/repos' # user
32+ data = {}
33+ data ["access_token" ] = token
34+ data ["name" ] = repo
35+ data ["has_issues" ] = True
36+ data ["has_wiki" ] = True
37+ data ["can_comment" ] = True
38+ data = json .dumps (data )
39+ data = data .encode ('utf-8' )
40+ request = urllib .request .Request (url , data , {'content-type' : 'application/json' , 'charset' : 'utf-8' })
41+ try :
42+ response = urllib .request .urlopen (request )
43+ resp = response .read ().decode ('utf-8' )
44+ except Exception as e :
45+ print ('create repositories: ' + repo + ' failed' )
46+ print ('e.code : ' + str (e .code ))
47+ print ('e.reason: ' + str (e .reason ))
48+ return json .loads (resp )
49+
50+
51+ def get_or_create_repository (owner , repo , token , is_user = False ):
3152 url = f'https://gitee.com/api/v5/repos/{ owner } /{ repo } ?access_token={ token } '
3253 request = urllib .request .Request (url )
3354 try :
3455 response = urllib .request .urlopen (request )
3556 resp = response .read ().decode ('utf-8' )
3657 except Exception as e :
3758 if e .code == 404 or e .code == 410 :
38- return create_repository (owner , repo , token )
59+ if is_user :
60+ return create_user_repository (repo , token )
61+ else :
62+ return create_orgs_repository (owner , repo , token )
3963 else :
4064 print ('get repository: ' + repo + ' failed, and http code not 404 ot 410!' )
4165 print ('e.code : ' + str (e .code ))
4266 print ('e.reason: ' + str (e .reason ))
4367 return json .loads (resp )
44-
45-
46- if __name__ == "__main__" :
47- resp = get_or_create_repository ("csp" )
48- print (resp )
0 commit comments