15
15
from git .exc import GitCommandError
16
16
17
17
class GogsClient (GogsApi ):
18
- def __init__ (self , * args , ** kwarg ):
18
+ def __init__ (self ):
19
19
self .session = Session ()
20
+
21
+ def setup (self , * args , ** kwarg ):
20
22
super ().__init__ (* args , session = self .session , ** kwarg )
21
23
22
24
def set_token (self , token ):
@@ -69,11 +71,11 @@ class GogsService(RepositoryService):
69
71
fqdn = 'try.gogs.io'
70
72
71
73
def __init__ (self , * args , ** kwargs ):
72
- self .url_base , self .fqdn = self ._url_parse (self .fqdn )
73
- self .gg = GogsClient (self .url_base )
74
+ self .gg = GogsClient ()
74
75
75
76
super ().__init__ (* args , ** kwargs )
76
77
78
+ self .gg .setup (self .url_ro )
77
79
self .gg .set_token (self ._privatekey )
78
80
self .gg .set_default_private (self .default_create_private )
79
81
self .gg .setup_session (
@@ -95,36 +97,11 @@ def connect(self):
95
97
else :
96
98
raise err
97
99
98
- @classmethod
99
- def _url_parse (cls , url ):
100
- if '://' not in url :
101
- url = 'https://' + url
102
- parse = urlparse (url )
103
- url_base = urlunparse ((parse .scheme , parse .netloc )+ ('' ,)* 4 )
104
- fqdn = parse .hostname
105
- return url_base , fqdn
106
-
107
- @property
108
- def url_ro (self ):
109
- return self .url_base
110
-
111
- @property
112
- def url_rw (self ):
113
- url = self .ssh_url
114
- if '@' in url :
115
- return url
116
- return '@' .join ([self .git_user , url ])
117
-
118
100
@classmethod
119
101
def get_auth_token (cls , login , password , prompt = None ):
120
102
import platform
121
103
name = 'git-repo token used on {}' .format (platform .node ())
122
- if '/' in login :
123
- url , login = login .rsplit ('/' , 1 )
124
- else :
125
- url = input ('URL [{}]> ' .format (cls .fqdn )) or cls .fqdn
126
- url_base , fqdn = cls ._url_parse (url )
127
- gg = GogsApi (url_base )
104
+ gg = GogsApi (cls .build_url ())
128
105
auth = UsernamePassword (login , password )
129
106
tokens = gg .get_tokens (auth , login )
130
107
tokens = dict ((token .name , token .token ) for token in tokens )
0 commit comments