1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
import re
from settings import LAUNCHPAD_REVIEW_TYPE
from mergeproposalreview import MergeProposalReview
def get_branch_from_mp(merge_proposal):
"""Return a link to branch given a link to a merge proposal.
If merge_proposal is:
https://copde.launchpad.net/~user/project/name/+merge/12345
then the result will be:
https://copde.launchpad.net/~user/project/name/
:param merge_proposal: url of a launchpad merge proposal
"""
m = re.search('(.*)\+merge/[0-9]+$', merge_proposal)
if m:
return m.group(1)
return None
def change_mp_status(mp, status, message, subject, revision, vote=None):
"""Change status (vote) of merge proposal.
:param status: merge proposal status (e.g. "Needs review")
:param message: message for the vote
:param subject: subject for the e-mail with the message
:param revision: revision against which this message is valid
:param vote: None or something from LaunchpadVote
(e.g. LaunchpadVote.NEEDS_FIXING)
"""
mp.setStatus(status=status, revid=revision)
if vote:
mp.createComment(review_type=LAUNCHPAD_REVIEW_TYPE,
subject=subject, content=message, vote=vote)
review = MergeProposalReview(mp)
review.unlock()
else:
mp.createComment(review_type=LAUNCHPAD_REVIEW_TYPE,
subject=subject, content=message)
|