Wire up webhooks to the UI.
This commit is contained in:
parent
fe67bc3d25
commit
ecc5f8fba7
7 changed files with 94 additions and 7 deletions
|
@ -841,7 +841,7 @@ def webhook_view(webhook):
|
|||
@api_login_required
|
||||
@parse_repository_name
|
||||
def create_webhook(namespace, repository):
|
||||
permission = ModifyRepositoryPermission(namespace, repository)
|
||||
permission = AdministerRepositoryPermission(namespace, repository)
|
||||
if permission.can():
|
||||
repo = model.get_repository(namespace, repository)
|
||||
webhook = model.create_webhook(repo, request.get_json())
|
||||
|
@ -849,6 +849,7 @@ def create_webhook(namespace, repository):
|
|||
repo_string = '%s/%s' % (namespace, repository)
|
||||
resp.headers['Location'] = url_for('get_webhook', repository=repo_string,
|
||||
public_id=webhook.public_id)
|
||||
return resp
|
||||
|
||||
abort(403) # Permissions denied
|
||||
|
||||
|
@ -858,7 +859,7 @@ def create_webhook(namespace, repository):
|
|||
@api_login_required
|
||||
@parse_repository_name
|
||||
def get_webhook(namespace, repository, public_id):
|
||||
permission = ModifyRepositoryPermission(namespace, repository)
|
||||
permission = AdministerRepositoryPermission(namespace, repository)
|
||||
if permission.can():
|
||||
webhook = model.get_webhook(namespace, repository, public_id)
|
||||
return jsonify(webhook_view(webhook))
|
||||
|
@ -870,7 +871,7 @@ def get_webhook(namespace, repository, public_id):
|
|||
@api_login_required
|
||||
@parse_repository_name
|
||||
def list_webhooks(namespace, repository):
|
||||
permission = ModifyRepositoryPermission(namespace, repository)
|
||||
permission = AdministerRepositoryPermission(namespace, repository)
|
||||
if permission.can():
|
||||
webhooks = model.list_webhooks(namespace, repository)
|
||||
return jsonify({
|
||||
|
@ -880,6 +881,19 @@ def list_webhooks(namespace, repository):
|
|||
abort(403) # Permission denied
|
||||
|
||||
|
||||
@app.route('/api/repository/<path:repository>/webhook/<public_id>',
|
||||
methods=['DELETE'])
|
||||
@api_login_required
|
||||
@parse_repository_name
|
||||
def delete_webhook(namespace, repository, public_id):
|
||||
permission = AdministerRepositoryPermission(namespace, repository)
|
||||
if permission.can():
|
||||
model.delete_webhook(namespace, repository, public_id)
|
||||
return make_response('No Content', 204)
|
||||
|
||||
abort(403) # Permission denied
|
||||
|
||||
|
||||
@app.route('/api/filedrop/', methods=['POST'])
|
||||
@api_login_required
|
||||
def get_filedrop_url():
|
||||
|
|
Reference in a new issue