Hi, I'm trying to create a JupyterLab extension to access GitLab based on https://github.com/jupyterlab/jupyterlab-github I'm having issues with the serverextension that acts as a proxy.
In GitLab, the namespaced path <https://docs.gitlab.com/ee/api/#namespaced-path-encoding> shall be URL-encoded: user/repository shall be encoded as *user%2Frepository* GET /api/v4/projects/diaspora%2Fdiaspora When I call* proxiedApiRequest<any>(requestUrl, this._serverSettings) *with requestUrl set to http://localhost:8888/gitlab/projects/gitlab-org%2Fci-training-sample/repository/tree? in javascript, on Python side, my handler gets the path */projects/gitlab-org/ci-training-sample/repository/tree *which of course results in a 404. I'd expect to get* /projects/gitlab-org%2Fci-training-sample/repository/tree* instead. get: /projects/gitlab-org/ci-training-sample/repository/tree [W 22:23:42.676 LabApp] 404 GET /gitlab/projects/gitlab-org%2Fci-training- sample/repository/tree?&1544131422149 (::1) 524.77ms referer=http: //localhost:8888/lab Is tornado automatically unescaping the endpoint? Is there a way around that? The Python code is almost the same as for the jupyterlab_github extension. Any endpoint shall be passed to the handler: class GitLabHandler(APIHandler): @gen.coroutine def get(self, path): """ Proxy API requests to GitLab, adding authentication parameter(s) if they have been set. """ print(f"get: {path}") ... def load_jupyter_server_extension(nb_server_app): web_app = nb_server_app.web_app base_url = web_app.settings["base_url"] endpoint = url_path_join(base_url, "gitlab") handlers = [(endpoint + "(.*)", GitLabHandler)] web_app.add_handlers(".*$", handlers) -- You received this message because you are subscribed to the Google Groups "Project Jupyter" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jupyter/4b8c111b-ade3-4b37-b5cc-52892f57f4fa%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
