git-serve: Support cloning with simplified paths

This commit adds support for cloning repositories over SSH without a
leading slash or with a trailing .git

Fixes FS#45260

Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
This commit is contained in:
Johannes Löthberg 2015-06-12 16:56:04 +02:00 committed by Lukas Fleischer
parent a32b83f200
commit 3158e038c8

View file

@ -123,8 +123,10 @@ if action == 'git-upload-pack' or action == 'git-receive-pack':
die_with_help("%s: missing path" % (action))
path = cmdargv[1].rstrip('/')
if not path.startswith('/') or not path.endswith('.git'):
die('%s: invalid path: %s' % (action, path))
if not path.startswith('/'):
path = '/' + path
if not path.endswith('.git'):
path = path + '.git'
pkgbase = path[1:-4]
if not re.match(repo_regex, pkgbase):
die('%s: invalid repository name: %s' % (action, pkgbase))