hgpoll.py

changeset 88
31fb8c355ef9
parent 87
9e757b602586
child 89
ec70a118f6cd
equal deleted inserted replaced
87:9e757b602586 88:31fb8c355ef9
67 print 'Cloning done.' 67 print 'Cloning done.'
68 except Exception as e: 68 except Exception as e:
69 print 'Unable to clone %s from %s: %s' % (repo_name, repo_url, str (`e`)) 69 print 'Unable to clone %s from %s: %s' % (repo_name, repo_url, str (`e`))
70 quit (1) 70 quit (1)
71 71
72
73 class HgProcessError (Exception):
74 def __init__ (self, value):
75 self.message = value
76 def __str__ (self):
77 return self.message
78
72 def announce_ticket_resolved (ticket_id, commit_node): 79 def announce_ticket_resolved (ticket_id, commit_node):
73 zanrepo = hgapi.Repo ('zandronum-everything') 80 zanrepo = hgapi.Repo ('zandronum-everything')
74 81
75 # Acquire additional data 82 # Acquire additional data
76 moredata = get_commit_data (zanrepo, commit_node, 83 moredata = get_commit_data (zanrepo, commit_node,
77 '{author|nonempty}\n{date(date, \'%A %d %B %Y %T\')}').split('\n') 84 '{author|nonempty}\n{date(date, \'%A %d %B %Y %T\')}').split('\n')
78 85
79 if len (moredata) != 2: 86 if len (moredata) != 2:
80 Irc.broadcast ('error while processing %s: malformed hg data' % commit_node) 87 raise HgProcessError ('malformed hg data while processing %s' % commit_node)
81 continue
82 88
83 commit_author = moredata[0] 89 commit_author = moredata[0]
84 commit_date = moredata[1] 90 commit_date = moredata[1]
85 commit_email = "" 91 commit_email = ""
86 92
87 try: 93 try:
88 ticket_data = Bt.get_issue (ticket_id) 94 ticket_data = Bt.get_issue (ticket_id)
89 except Exception as e: 95 except Exception as e:
90 Irc.broadcast ('error while processing %s: %s' % (commit_node, `e`)) 96 raise HgProcessError ("error while processing %s: %s" % (commit_node, e))
91 continue
92 97
93 # Remove the email address from the author if possible 98 # Remove the email address from the author if possible
94 rex = re.compile (r'^(.+) <([^>]+)>$.*') 99 rex = re.compile (r'^(.+) <([^>]+)>$.*')
95 match = rex.match (commit_author) 100 match = rex.match (commit_author)
96 if match: 101 if match:

mercurial