use kwargs for parse_repository_name
This commit is contained in:
parent
3b52a255b2
commit
bb46cc933d
15 changed files with 285 additions and 270 deletions
|
@ -26,7 +26,7 @@ from data import model
|
|||
from data.database import db
|
||||
from endpoints.api.discovery import swagger_route_data
|
||||
from endpoints.common import (common_login, render_page_template, route_show_if, param_required,
|
||||
parse_repository_name, parse_repository_name_and_tag)
|
||||
parse_repository_name)
|
||||
from endpoints.csrf import csrf_protect, generate_csrf_token, verify_csrf
|
||||
from endpoints.decorators import anon_protect, anon_allowed
|
||||
from health.healthcheck import get_healthchecker
|
||||
|
@ -411,20 +411,20 @@ def confirm_recovery():
|
|||
|
||||
|
||||
@web.route('/repository/<repopath:repository>/status', methods=['GET'])
|
||||
@parse_repository_name
|
||||
@parse_repository_name()
|
||||
@anon_protect
|
||||
def build_status_badge(namespace, repository):
|
||||
def build_status_badge(namespace_name, repo_name):
|
||||
token = request.args.get('token', None)
|
||||
is_public = model.repository.repository_is_public(namespace, repository)
|
||||
is_public = model.repository.repository_is_public(namespace_name, repo_name)
|
||||
if not is_public:
|
||||
repo = model.repository.get_repository(namespace, repository)
|
||||
repo = model.repository.get_repository(namespace_name, repo_name)
|
||||
if not repo or token != repo.badge_token:
|
||||
abort(404)
|
||||
|
||||
# Lookup the tags for the repository.
|
||||
tags = model.tag.list_repository_tags(namespace, repository)
|
||||
tags = model.tag.list_repository_tags(namespace_name, repo_name)
|
||||
is_empty = len(list(tags)) == 0
|
||||
recent_build = model.build.get_recent_repository_build(namespace, repository)
|
||||
recent_build = model.build.get_recent_repository_build(namespace_name, repo_name)
|
||||
|
||||
if not is_empty and (not recent_build or recent_build.phase == 'complete'):
|
||||
status_name = 'ready'
|
||||
|
@ -600,14 +600,14 @@ def download_logs_archive():
|
|||
|
||||
@web.route('/bitbucket/setup/<repopath:repository>', methods=['GET'])
|
||||
@require_session_login
|
||||
@parse_repository_name
|
||||
@parse_repository_name()
|
||||
@route_show_if(features.BITBUCKET_BUILD)
|
||||
def attach_bitbucket_trigger(namespace, repository_name):
|
||||
permission = AdministerRepositoryPermission(namespace, repository_name)
|
||||
def attach_bitbucket_trigger(namespace_name, repo_name):
|
||||
permission = AdministerRepositoryPermission(namespace_name, repo_name)
|
||||
if permission.can():
|
||||
repo = model.repository.get_repository(namespace, repository_name)
|
||||
repo = model.repository.get_repository(namespace_name, repo_name)
|
||||
if not repo:
|
||||
msg = 'Invalid repository: %s/%s' % (namespace, repository_name)
|
||||
msg = 'Invalid repository: %s/%s' % (namespace_name, repo_name)
|
||||
abort(404, message=msg)
|
||||
|
||||
trigger = model.build.create_build_trigger(repo, BitbucketBuildTrigger.service_name(), None,
|
||||
|
@ -634,19 +634,19 @@ def attach_bitbucket_trigger(namespace, repository_name):
|
|||
|
||||
@web.route('/customtrigger/setup/<repopath:repository>', methods=['GET'])
|
||||
@require_session_login
|
||||
@parse_repository_name
|
||||
def attach_custom_build_trigger(namespace, repository_name):
|
||||
permission = AdministerRepositoryPermission(namespace, repository_name)
|
||||
@parse_repository_name()
|
||||
def attach_custom_build_trigger(namespace_name, repo_name):
|
||||
permission = AdministerRepositoryPermission(namespace_name, repo_name)
|
||||
if permission.can():
|
||||
repo = model.repository.get_repository(namespace, repository_name)
|
||||
repo = model.repository.get_repository(namespace_name, repo_name)
|
||||
if not repo:
|
||||
msg = 'Invalid repository: %s/%s' % (namespace, repository_name)
|
||||
msg = 'Invalid repository: %s/%s' % (namespace_name, repo_name)
|
||||
abort(404, message=msg)
|
||||
|
||||
trigger = model.build.create_build_trigger(repo, CustomBuildTrigger.service_name(),
|
||||
None, current_user.db_user())
|
||||
|
||||
repo_path = '%s/%s' % (namespace, repository_name)
|
||||
repo_path = '%s/%s' % (namespace_name, repo_name)
|
||||
full_url = '%s%s%s' % (url_for('web.repository', path=repo_path), '?tab=builds&newtrigger=',
|
||||
trigger.uuid)
|
||||
|
||||
|
@ -655,21 +655,22 @@ def attach_custom_build_trigger(namespace, repository_name):
|
|||
|
||||
abort(403)
|
||||
|
||||
|
||||
@web.route('/<repopath:repository>')
|
||||
@no_cache
|
||||
@process_oauth
|
||||
@parse_repository_name_and_tag
|
||||
@parse_repository_name(include_tag=True)
|
||||
@anon_protect
|
||||
def redirect_to_repository(namespace, reponame, tag_name):
|
||||
permission = ReadRepositoryPermission(namespace, reponame)
|
||||
is_public = model.repository.repository_is_public(namespace, reponame)
|
||||
def redirect_to_repository(namespace_name, repo_name, tag_name):
|
||||
permission = ReadRepositoryPermission(namespace_name, repo_name)
|
||||
is_public = model.repository.repository_is_public(namespace_name, repo_name)
|
||||
|
||||
if request.args.get('ac-discovery', 0) == 1:
|
||||
return index('')
|
||||
|
||||
if permission.can() or is_public:
|
||||
repository_name = '/'.join([namespace, reponame])
|
||||
return redirect(url_for('web.repository', path=repository_name, tag=tag_name))
|
||||
repo_path = '/'.join([namespace_name, repo_name])
|
||||
return redirect(url_for('web.repository', path=repo_path, tag=tag_name))
|
||||
|
||||
abort(404)
|
||||
|
||||
|
|
Reference in a new issue