Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot
2020-12-01 12:09:17 +00:00
parent a7704bf16a
commit 7b2635a55d
126 changed files with 1838 additions and 1749 deletions

View File

@ -4,7 +4,7 @@ module Constraints
class ProjectUrlConstrainer
def matches?(request, existence_check: true)
namespace_path = request.params[:namespace_id]
project_path = request.params[:project_id] || request.params[:id] || request.params[:repository_id]
project_path = request.params[:project_id] || request.params[:id]
full_path = [namespace_path, project_path].join('/')
return false unless ProjectPathValidator.valid_path?(full_path)

View File

@ -0,0 +1,28 @@
# frozen_string_literal: true
module Constraints
class RepositoryRedirectUrlConstrainer
def matches?(request)
path = request.params[:repository_path].delete_suffix('.git')
query = request.query_string
git_request?(query) && container_path?(path)
end
# Allow /info/refs, /info/refs?service=git-upload-pack, and
# /info/refs?service=git-receive-pack, but nothing else.
def git_request?(query)
query.blank? ||
query == 'service=git-upload-pack' ||
query == 'service=git-receive-pack'
end
# Check if the path matches any known repository containers.
# These also cover wikis, since a `.wiki` suffix is valid in project/group paths too.
def container_path?(path)
NamespacePathValidator.valid_path?(path) ||
ProjectPathValidator.valid_path?(path) ||
path =~ Gitlab::PathRegex.full_snippets_repository_path_regex
end
end
end