Merge lp:~jelmer/brz/iter-hoster-api into lp:brz/3.2

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/iter-hoster-api
Merge into: lp:brz/3.2
Diff against target: 56 lines (+10/-4)
2 files modified
breezy/plugins/gitlab/hoster.py (+9/-3)
breezy/plugins/propose/cmds.py (+1/-1)
To merge this branch: bzr merge lp:~jelmer/brz/iter-hoster-api
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+416169@code.launchpad.net

Commit message

Avoid accessing transport in Hoster in constructor.

Description of the change

Avoid accessing transport in Hoster in constructor.

To post a comment you must log in.
Revision history for this message
Jelmer Vernooij (jelmer) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/plugins/gitlab/hoster.py'
2--- breezy/plugins/gitlab/hoster.py 2021-08-19 16:05:04 +0000
3+++ breezy/plugins/gitlab/hoster.py 2022-02-28 22:58:38 +0000
4@@ -392,7 +392,7 @@
5 def __init__(self, transport, private_token):
6 self.transport = transport
7 self.headers = {"Private-Token": private_token}
8- self.check()
9+ self._current_user = None
10
11 def _get_user(self, username):
12 path = 'users/%s' % urlutils.quote(str(username), '')
13@@ -494,6 +494,8 @@
14 raise MergeRequestConflict(reason)
15
16 def get_current_user(self):
17+ if not self._current_user:
18+ self._retrieve_user()
19 return self._current_user['username']
20
21 def get_user_url(self, username):
22@@ -689,7 +691,9 @@
23 return False
24 return self.base_hostname == host
25
26- def check(self):
27+ def _retrieve_user(self):
28+ if self._current_user:
29+ return
30 try:
31 response = self._api_request('GET', 'user')
32 except errors.UnexpectedHttpStatus as e:
33@@ -716,7 +720,9 @@
34 'https://%s' % host, possible_transports=possible_transports)
35 credentials = get_credentials_by_url(transport.base)
36 if credentials is not None:
37- return cls(transport, credentials.get('private_token'))
38+ instance = cls(transport, credentials.get('private_token'))
39+ instance._retrieve_user()
40+ return instance
41 try:
42 resp = transport.request(
43 'GET', 'https://%s/api/v4/projects/%s' % (host, urlutils.quote(str(project), '')))
44
45=== modified file 'breezy/plugins/propose/cmds.py'
46--- breezy/plugins/propose/cmds.py 2021-04-03 12:58:34 +0000
47+++ breezy/plugins/propose/cmds.py 2022-02-28 22:58:38 +0000
48@@ -255,7 +255,7 @@
49
50 hidden = True
51
52- takes_args = ['base-url?']
53+ takes_args = ['base_url?']
54 takes_options = [
55 'verbose',
56 RegistryOption.from_kwargs(

Subscribers

People subscribed via source and target branches