webhook: enable support of extra repo variables as replacement in template url.
This commit is contained in:
parent
67377b4a77
commit
2f81e258a7
3 changed files with 18 additions and 4 deletions
|
|
@ -16,6 +16,7 @@
|
|||
# RhodeCode Enterprise Edition, including its added features, Support services,
|
||||
# and proprietary license terms, please see https://rhodecode.com/licenses/
|
||||
|
||||
import collections
|
||||
import logging
|
||||
|
||||
from rhodecode.translation import lazy_ugettext
|
||||
|
|
@ -75,9 +76,10 @@ def _commits_as_dict(commit_ids, repos):
|
|||
urlified_message, issues_data = process_patterns(
|
||||
cs_data['message'], repo.repo_name)
|
||||
cs_data['issues'] = issues_data
|
||||
cs_data['message_html'] = urlify_commit_message(cs_data['message'],
|
||||
repo.repo_name)
|
||||
cs_data['message_html_title'] = chop_at_smart(cs_data['message'], '\n', suffix_if_chopped='...')
|
||||
cs_data['message_html'] = urlify_commit_message(
|
||||
cs_data['message'], repo.repo_name)
|
||||
cs_data['message_html_title'] = chop_at_smart(
|
||||
cs_data['message'], '\n', suffix_if_chopped='...')
|
||||
commits.append(cs_data)
|
||||
|
||||
needed_commits.remove(commit_id)
|
||||
|
|
@ -118,12 +120,17 @@ class RepoEvent(RhodecodeEvent):
|
|||
def as_dict(self):
|
||||
from rhodecode.model.repo import RepoModel
|
||||
data = super(RepoEvent, self).as_dict()
|
||||
extra_fields = collections.OrderedDict()
|
||||
for field in self.repo.extra_fields:
|
||||
extra_fields[field.field_key] = field.field_value
|
||||
|
||||
data.update({
|
||||
'repo': {
|
||||
'repo_id': self.repo.repo_id,
|
||||
'repo_name': self.repo.repo_name,
|
||||
'repo_type': self.repo.repo_type,
|
||||
'url': RepoModel().get_url(self.repo)
|
||||
'url': RepoModel().get_url(self.repo),
|
||||
'extra_fields': extra_fields
|
||||
}
|
||||
})
|
||||
return data
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ WEBHOOK_URL_VARS = [
|
|||
'repo_type',
|
||||
'repo_id',
|
||||
'repo_url',
|
||||
# extra repo fields
|
||||
'extra:<extra_key_name>',
|
||||
|
||||
# special attrs below that we handle, using multi-call
|
||||
'branch',
|
||||
|
|
@ -77,6 +79,10 @@ class WebhookHandler(object):
|
|||
'username': data['actor']['username'],
|
||||
'user_id': data['actor']['user_id']
|
||||
}
|
||||
extra_vars = {}
|
||||
for extra_key, extra_val in data['repo']['extra_fields'].items():
|
||||
extra_vars['extra:{}'.format(extra_key)] = extra_val
|
||||
common_vars.update(extra_vars)
|
||||
|
||||
return string.Template(
|
||||
self.template_url).safe_substitute(**common_vars)
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ def base_data():
|
|||
'repo_type': 'hg',
|
||||
'repo_id': '12',
|
||||
'url': 'http://repo.url/foo',
|
||||
'extra_fields': {},
|
||||
},
|
||||
'actor': {
|
||||
'username': 'actor_name',
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue