Show More
@@ -36,6 +36,26 b' from rhodecode.integrations.types.base i' | |||
|
36 | 36 | |
|
37 | 37 | log = logging.getLogger(__name__) |
|
38 | 38 | |
|
39 | REPO_PUSH_TEMPLATE = Template(''' | |
|
40 | <b>${data['actor']['username']}</b> pushed to repo <a href="${data['repo']['url']}">${data['repo']['repo_name']}</a>: | |
|
41 | <br> | |
|
42 | <ul> | |
|
43 | %for branch, branch_commits in branches_commits.items(): | |
|
44 | <li> | |
|
45 | % if branch: | |
|
46 | <a href="${branch_commits['branch']['url']}">branch: ${branch_commits['branch']['name']}</a> | |
|
47 | % else: | |
|
48 | to trunk | |
|
49 | % endif | |
|
50 | <ul> | |
|
51 | % for commit in branch_commits['commits']: | |
|
52 | <li><a href="${commit['url']}">${commit['short_id']}</a> - ${commit['message_html']}</li> | |
|
53 | % endfor | |
|
54 | </ul> | |
|
55 | </li> | |
|
56 | %endfor | |
|
57 | ''') | |
|
58 | ||
|
39 | 59 | |
|
40 | 60 | class HipchatSettingsSchema(colander.Schema): |
|
41 | 61 | color_choices = [ |
@@ -76,27 +96,6 b' class HipchatSettingsSchema(colander.Sch' | |||
|
76 | 96 | ) |
|
77 | 97 | |
|
78 | 98 | |
|
79 | repo_push_template = Template(''' | |
|
80 | <b>${data['actor']['username']}</b> pushed to repo <a href="${data['repo']['url']}">${data['repo']['repo_name']}</a>: | |
|
81 | <br> | |
|
82 | <ul> | |
|
83 | %for branch, branch_commits in branches_commits.items(): | |
|
84 | <li> | |
|
85 | % if branch: | |
|
86 | <a href="${branch_commits['branch']['url']}">branch: ${branch_commits['branch']['name']}</a> | |
|
87 | % else: | |
|
88 | to trunk | |
|
89 | % endif | |
|
90 | <ul> | |
|
91 | % for commit in branch_commits['commits']: | |
|
92 | <li><a href="${commit['url']}">${commit['short_id']}</a> - ${commit['message_html']}</li> | |
|
93 | % endfor | |
|
94 | </ul> | |
|
95 | </li> | |
|
96 | %endfor | |
|
97 | ''') | |
|
98 | ||
|
99 | ||
|
100 | 99 | class HipchatIntegrationType(IntegrationTypeBase, CommitParsingDataHandler): |
|
101 | 100 | key = 'hipchat' |
|
102 | 101 | display_name = _('Hipchat') |
@@ -226,7 +225,7 b' class HipchatIntegrationType(Integration' | |||
|
226 | 225 | data['push']['branches'], data['push']['commits']) |
|
227 | 226 | |
|
228 | 227 | result = render_with_traceback( |
|
229 | repo_push_template, | |
|
228 | REPO_PUSH_TEMPLATE, | |
|
230 | 229 | data=data, |
|
231 | 230 | branches_commits=branches_commits, |
|
232 | 231 | ) |
@@ -41,6 +41,30 b' from rhodecode.integrations.types.base i' | |||
|
41 | 41 | log = logging.getLogger(__name__) |
|
42 | 42 | |
|
43 | 43 | |
|
44 | def html_to_slack_links(message): | |
|
45 | return re.compile(r'<a .*?href=["\'](.+?)".*?>(.+?)</a>').sub( | |
|
46 | r'<\1|\2>', message) | |
|
47 | ||
|
48 | ||
|
49 | REPO_PUSH_TEMPLATE = Template(''' | |
|
50 | <% | |
|
51 | def branch_text(branch): | |
|
52 | if branch: | |
|
53 | return 'on branch: <{}|{}>'.format(branch_commits['branch']['url'], branch_commits['branch']['name']) | |
|
54 | else: | |
|
55 | ## case for SVN no branch push... | |
|
56 | return 'to trunk' | |
|
57 | %> \ | |
|
58 | ||
|
59 | % for branch, branch_commits in branches_commits.items(): | |
|
60 | ${len(branch_commits['commits'])} ${'commit' if len(branch_commits['commits']) == 1 else 'commits'} ${branch_text(branch)} | |
|
61 | % for commit in branch_commits['commits']: | |
|
62 | `<${commit['url']}|${commit['short_id']}>` - ${commit['message_html']|html_to_slack_links} | |
|
63 | % endfor | |
|
64 | % endfor | |
|
65 | ''') | |
|
66 | ||
|
67 | ||
|
44 | 68 | class SlackSettingsSchema(colander.Schema): |
|
45 | 69 | service = colander.SchemaNode( |
|
46 | 70 | colander.String(), |
@@ -258,7 +282,6 b' class SlackIntegrationType(IntegrationTy' | |||
|
258 | 282 | return title, text |
|
259 | 283 | |
|
260 | 284 | def format_repo_push_event(self, data): |
|
261 | ||
|
262 | 285 | branches_commits = self.aggregate_branch_data( |
|
263 | 286 | data['push']['branches'], data['push']['commits']) |
|
264 | 287 | |
@@ -267,25 +290,8 b' class SlackIntegrationType(IntegrationTy' | |||
|
267 | 290 | ''') |
|
268 | 291 | title = render_with_traceback(template, data=data) |
|
269 | 292 | |
|
270 | repo_push_template = Template(textwrap.dedent(r''' | |
|
271 | <% | |
|
272 | def branch_text(branch): | |
|
273 | if branch: | |
|
274 | return 'on branch: <{}|{}>'.format(branch_commits['branch']['url'], branch_commits['branch']['name']) | |
|
275 | else: | |
|
276 | ## case for SVN no branch push... | |
|
277 | return 'to trunk' | |
|
278 | %> \ | |
|
279 | % for branch, branch_commits in branches_commits.items(): | |
|
280 | ${len(branch_commits['commits'])} ${'commit' if len(branch_commits['commits']) == 1 else 'commits'} ${branch_text(branch)} | |
|
281 | % for commit in branch_commits['commits']: | |
|
282 | `<${commit['url']}|${commit['short_id']}>` - ${commit['message_html']|html_to_slack_links} | |
|
283 | % endfor | |
|
284 | % endfor | |
|
285 | ''')) | |
|
286 | ||
|
287 | 293 | text = render_with_traceback( |
|
288 | repo_push_template, | |
|
294 | REPO_PUSH_TEMPLATE, | |
|
289 | 295 | data=data, |
|
290 | 296 | branches_commits=branches_commits, |
|
291 | 297 | html_to_slack_links=html_to_slack_links, |
@@ -308,11 +314,6 b' class SlackIntegrationType(IntegrationTy' | |||
|
308 | 314 | return title, text |
|
309 | 315 | |
|
310 | 316 | |
|
311 | def html_to_slack_links(message): | |
|
312 | return re.compile(r'<a .*?href=["\'](.+?)".*?>(.+?)</a>').sub( | |
|
313 | r'<\1|\2>', message) | |
|
314 | ||
|
315 | ||
|
316 | 317 | @async_task(ignore_result=True, base=RequestContextTask) |
|
317 | 318 | def post_text_to_slack(settings, title, text, fields=None, overrides=None): |
|
318 | 319 | log.debug('sending %s (%s) to slack %s', title, text, settings['service']) |
General Comments 0
You need to be logged in to leave comments.
Login now