rcextensions: updated examples, and made http_call util use the method parameter.
- before it was ununsed by mistake.
This commit is contained in:
parent
9dd589e264
commit
a631443803
5 changed files with 43 additions and 12 deletions
|
|
@ -25,12 +25,13 @@ def _push_hook(*args, **kwargs):
|
|||
repo_extra_fields = extra_fields.run(**kwargs)
|
||||
|
||||
if repo_extra_fields.get('endpoint_url'):
|
||||
endpoint = repo_extra_fields['endpoint_url']
|
||||
field_metadata = repo_extra_fields['endpoint_url']
|
||||
endpoint = field_metadata['field_value']
|
||||
if endpoint:
|
||||
data = {
|
||||
'some_key': 'val'
|
||||
'project': kwargs['repository'],
|
||||
}
|
||||
response = http_call.run(url=endpoint, json_data=data)
|
||||
return HookResponse(0, 'Called endpoint {}, with response {}'.format(endpoint, response))
|
||||
response = http_call.run(url=endpoint, params=data)
|
||||
return HookResponse(0, 'Called endpoint {}, with response {}\n'.format(endpoint, response))
|
||||
|
||||
return HookResponse(0, '')
|
||||
|
|
|
|||
|
|
@ -25,7 +25,8 @@ def _push_hook(*args, **kwargs):
|
|||
repo_extra_fields = extra_fields.run(**kwargs)
|
||||
|
||||
if repo_extra_fields.get('endpoint_url'):
|
||||
endpoint = repo_extra_fields['endpoint_url']
|
||||
field_metadata = repo_extra_fields['endpoint_url']
|
||||
endpoint = field_metadata['field_value']
|
||||
if endpoint:
|
||||
data = {
|
||||
'some_key': 'val'
|
||||
|
|
|
|||
|
|
@ -54,10 +54,11 @@ def _pre_push_hook(*args, **kwargs):
|
|||
repo_extra_fields = extra_fields.run(**kwargs)
|
||||
|
||||
# optionally use 'extra fields' to control the logic per repo
|
||||
should_validate = str2bool(repo_extra_fields.get('validate_author', True))
|
||||
validate_author = repo_extra_fields.get('validate_author', {}).get('field_value')
|
||||
should_validate = str2bool(validate_author)
|
||||
|
||||
# optionally store validation regex into extra fields
|
||||
validation_regex = repo_extra_fields.get('validation_regex', '')
|
||||
validation_regex = repo_extra_fields.get('validation_regex', {}).get('field_value')
|
||||
|
||||
def validate_commit_message(commit_message, message_regex=None):
|
||||
"""
|
||||
|
|
|
|||
|
|
@ -18,11 +18,26 @@
|
|||
# and proprietary license terms, please see https://rhodecode.com/licenses/
|
||||
|
||||
"""
|
||||
us in hooks::
|
||||
example usage in hooks::
|
||||
|
||||
from .helpers import extra_fields
|
||||
# returns list of dicts with key-val fetched from extra fields
|
||||
repo_extra_fields = extra_fields.run(**kwargs)
|
||||
repo_extra_fields.get('endpoint_url')
|
||||
|
||||
# the field stored the following example values
|
||||
{u'created_on': datetime.datetime(),
|
||||
u'field_key': u'endpoint_url',
|
||||
u'field_label': u'Endpoint URL',
|
||||
u'field_desc': u'Full HTTP endpoint to call if given',
|
||||
u'field_type': u'str',
|
||||
u'field_value': u'http://server.com/post',
|
||||
u'repo_field_id': 1,
|
||||
u'repository_id': 1}
|
||||
# for example to obtain the value:
|
||||
endpoint_field = repo_extra_fields.get('endpoint_url')
|
||||
if endpoint_field:
|
||||
url = endpoint_field['field_value']
|
||||
|
||||
"""
|
||||
|
||||
|
|
|
|||
|
|
@ -22,15 +22,28 @@ us in hooks::
|
|||
|
||||
from .helpers import http_call
|
||||
# returns response after making a POST call
|
||||
response = http_call.run(url=url, json_data=data)
|
||||
response = http_call.run(url=url, json_data={"key": "val"})
|
||||
|
||||
# returns response after making a GET call
|
||||
response = http_call.run(url=url, params={"key": "val"}, method='get')
|
||||
|
||||
"""
|
||||
|
||||
from rhodecode.integrations.types.base import requests_retry_call
|
||||
|
||||
|
||||
def run(url, json_data, method='post'):
|
||||
def run(url, json_data=None, params=None, method='post'):
|
||||
requests_session = requests_retry_call()
|
||||
requests_session.verify = True # Verify SSL
|
||||
resp = requests_session.post(url, json=json_data, timeout=60)
|
||||
return resp.raise_for_status() # raise exception on a failed request
|
||||
method_caller = getattr(requests_session, method, 'post')
|
||||
|
||||
timeout = 60
|
||||
if json_data:
|
||||
resp = method_caller(url, json=json_data, timeout=timeout)
|
||||
elif params:
|
||||
resp = method_caller(url, params=json_data, timeout=timeout)
|
||||
else:
|
||||
raise AttributeError('Provide json_data= or params= in function call')
|
||||
resp.raise_for_status() # raise exception on a failed request
|
||||
return resp
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue