From a002b6e36fa05cd0911ae63433b6c6c90feda421 Mon Sep 17 00:00:00 2001 From: Raimund Hook Date: Thu, 22 Oct 2020 16:36:53 +0100 Subject: [PATCH] parse owner and repository in a url safe way --- perceval/backends/core/gitlab.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/perceval/backends/core/gitlab.py b/perceval/backends/core/gitlab.py index dd723a5d8..6b81cd775 100644 --- a/perceval/backends/core/gitlab.py +++ b/perceval/backends/core/gitlab.py @@ -555,7 +555,8 @@ def merge(self, merge_id): """Get the merge full data""" path = urijoin(self.base_url, - self.RPROJECTS, self.owner + '%2F' + self.repository, + self.RPROJECTS, urllib.parse.quote( + self.owner + '/' + self.repository, safe=''), self.RMERGES, merge_id) response = self.fetch(path) @@ -578,7 +579,8 @@ def merge_version(self, merge_id, version_id): """Get merge version detail""" path = urijoin(self.base_url, - self.RPROJECTS, self.owner + '%2F' + self.repository, + self.RPROJECTS, urllib.parse.quote( + self.owner + '/' + self.repository, safe=''), self.RMERGES, merge_id, self.RVERSIONS, version_id) response = self.fetch(path) @@ -663,7 +665,9 @@ def fetch_items(self, path, payload): page = 0 # current page last_page = None # last page - url_next = urijoin(self.base_url, self.RPROJECTS, self.owner + '%2F' + self.repository, path) + url_next = urijoin( + self.base_url, self.RPROJECTS, urllib.parse.quote( + self.owner + '/' + self.repository, safe=''), path) logger.debug("Get GitLab paginated items from " + url_next) @@ -735,7 +739,8 @@ def _set_extra_headers(self): def _init_rate_limit(self): """Initialize rate limit information""" - url = urijoin(self.base_url, 'projects', self.owner + '%2F' + self.repository) + url = urijoin(self.base_url, 'projects', urllib.parse.quote( + self.owner + '/' + self.repository, safe='')) try: response = super().fetch(url) self.update_rate_limit(response)