diff --git a/kallithea/model/db.py b/kallithea/model/db.py --- a/kallithea/model/db.py +++ b/kallithea/model/db.py @@ -1563,6 +1563,7 @@ class RepoGroup(Base, BaseDbModel): @classmethod def get_by_group_name(cls, group_name, cache=False, case_insensitive=False): + group_name = group_name.rstrip('/') if case_insensitive: gr = cls.query() \ .filter(func.lower(cls.group_name) == func.lower(group_name)) diff --git a/kallithea/tests/functional/test_repo_groups.py b/kallithea/tests/functional/test_repo_groups.py --- a/kallithea/tests/functional/test_repo_groups.py +++ b/kallithea/tests/functional/test_repo_groups.py @@ -64,6 +64,10 @@ class TestRepoGroupsController(TestContr response = self.app.get(url('repos_group', group_name=group_name)) response.mustcontain('href="/_admin/repo_groups/%s/edit"' % group_name) + # show ignores extra trailing slashes in the URL + response = self.app.get(url('repos_group', group_name='%s//' % group_name)) + response.mustcontain('href="/_admin/repo_groups/%s/edit"' % group_name) + # delete response = self.app.post(url('delete_repo_group', group_name=group_name), {'_authentication_token': self.authentication_token()})