Merge lp:~jelmer/brz/by-hoster into lp:brz/3.1

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/by-hoster
Merge into: lp:brz/3.1
Diff against target: 105 lines (+41/-15)
2 files modified
breezy/plugins/propose/cmds.py (+35/-13)
breezy/propose.py (+6/-2)
To merge this branch: bzr merge lp:~jelmer/brz/by-hoster
Reviewer Review Type Date Requested Status
Jelmer Vernooij Approve
Review via email: mp+389998@code.launchpad.net

Commit message

Several small improvements to merge proposal commands.

Description of the change

Several small improvements to merge proposal commands.

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/propose/cmds.py'
2--- breezy/plugins/propose/cmds.py 2020-08-27 23:59:30 +0000
3+++ breezy/plugins/propose/cmds.py 2020-08-30 17:24:02 +0000
4@@ -146,7 +146,7 @@
5 RegistryOption(
6 'hoster',
7 help='Use the hoster.',
8- lazy_registry=('breezy.plugins.propose.propose', 'hosters')),
9+ lazy_registry=('breezy.propose', 'hosters')),
10 ListOption('reviewers', short_name='R', type=text_type,
11 help='Requested reviewers.'),
12 Option('name', help='Name of the new remote branch.', type=str),
13@@ -258,6 +258,7 @@
14
15 hidden = True
16
17+ takes_args = ['base-url?']
18 takes_options = [
19 'verbose',
20 RegistryOption.from_kwargs(
21@@ -269,18 +270,32 @@
22 all='All merge proposals',
23 open='Open merge proposals',
24 merged='Merged merge proposals',
25- closed='Closed merge proposals')]
26-
27- def run(self, status='open', verbose=False):
28- for instance in _mod_propose.iter_hoster_instances():
29+ closed='Closed merge proposals'),
30+ RegistryOption(
31+ 'hoster',
32+ help='Use the hoster.',
33+ lazy_registry=('breezy.propose', 'hosters')),
34+ ]
35+
36+ def run(self, status='open', verbose=False, hoster=None, base_url=None):
37+
38+ for instance in _mod_propose.iter_hoster_instances(hoster=hoster):
39+ if base_url is not None and instance.base_url != base_url:
40+ continue
41 try:
42 for mp in instance.iter_my_proposals(status=status):
43 self.outf.write('%s\n' % mp.url)
44 if verbose:
45- self.outf.write(
46- '(Merging %s into %s)\n' %
47- (mp.get_source_branch_url(),
48- mp.get_target_branch_url()))
49+ source_branch_url = mp.get_source_branch_url()
50+ if source_branch_url:
51+ self.outf.write(
52+ '(Merging %s into %s)\n' %
53+ (source_branch_url,
54+ mp.get_target_branch_url()))
55+ else:
56+ self.outf.write(
57+ '(Merging into %s)\n' %
58+ mp.get_target_branch_url())
59 description = mp.get_description()
60 if description:
61 self.outf.writelines(
62@@ -312,10 +327,17 @@
63 for instance in _mod_propose.iter_hoster_instances():
64 current_user = instance.get_current_user()
65 if current_user is not None:
66- self.outf.write(
67- gettext('%s (%s) - user: %s (%s)\n') % (
68- instance.name, instance.base_url,
69- current_user, instance.get_user_url(current_user)))
70+ current_user_url = instance.get_user_url(current_user)
71+ if current_user_url is not None:
72+ self.outf.write(
73+ gettext('%s (%s) - user: %s (%s)\n') % (
74+ instance.name, instance.base_url,
75+ current_user, current_user_url))
76+ else:
77+ self.outf.write(
78+ gettext('%s (%s) - user: %s\n') % (
79+ instance.name, instance.base_url,
80+ current_user))
81 else:
82 self.outf.write(
83 gettext('%s (%s) - not logged in\n') % (
84
85=== modified file 'breezy/propose.py'
86--- breezy/propose.py 2020-08-02 03:22:34 +0000
87+++ breezy/propose.py 2020-08-30 17:24:02 +0000
88@@ -412,12 +412,16 @@
89 raise UnsupportedHoster(branch)
90
91
92-def iter_hoster_instances():
93+def iter_hoster_instances(hoster=None):
94 """Iterate over all known hoster instances.
95
96 :return: Iterator over Hoster instances
97 """
98- for name, hoster_cls in hosters.items():
99+ if hoster is None:
100+ hoster_clses = [hoster_cls for name, hoster_cls in hosters.items()]
101+ else:
102+ hoster_clses = [hoster]
103+ for hoster_cls in hoster_clses:
104 for instance in hoster_cls.iter_instances():
105 yield instance
106

Subscribers

People subscribed via source and target branches