diff options
| author | John L. Villalovos <john@sodarock.com> | 2022-01-09 00:53:12 -0800 |
|---|---|---|
| committer | John L. Villalovos <john@sodarock.com> | 2022-01-09 00:53:12 -0800 |
| commit | 99e1f8bad3e52ca6fb2dc6b876a262c6fee39e41 (patch) | |
| tree | 6a11bdaf3e49a3dec844255d74a860798e8acc68 /gitlab/v4/objects/groups.py | |
| parent | ac812727c26c9bde4ee5c1115029f2ff4ab1964b (diff) | |
| download | gitlab-jlvillal/encoded_id_alt.tar.gz | |
fix: use url-encoded ID in all paths ALTERNATE METHODjlvillal/encoded_id_alt
An alternative to https://github.com/python-gitlab/python-gitlab/pull/1819
Make sure all usage of the ID in the URL path is encoded. Normally it
isn't an issue as most IDs are integers or strings which don't contain
a slash ('/'). But when the ID is a string with a slash character it
will break things.
Add a test case that shows this fixes wikis issue with subpages which
use the slash character.
Closes: #1079
Diffstat (limited to 'gitlab/v4/objects/groups.py')
| -rw-r--r-- | gitlab/v4/objects/groups.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gitlab/v4/objects/groups.py b/gitlab/v4/objects/groups.py index 7479cfb..cd1ab16 100644 --- a/gitlab/v4/objects/groups.py +++ b/gitlab/v4/objects/groups.py @@ -113,7 +113,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): A list of dicts describing the resources found. """ data = {"scope": scope, "search": search} - path = f"/groups/{self.get_id()}/search" + path = f"/groups/{self.encoded_id}/search" return self.manager.gitlab.http_list(path, query_data=data, **kwargs) @cli.register_custom_action("Group", ("cn", "group_access", "provider")) @@ -134,7 +134,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabCreateError: If the server cannot perform the request """ - path = f"/groups/{self.get_id()}/ldap_group_links" + path = f"/groups/{self.encoded_id}/ldap_group_links" data = {"cn": cn, "group_access": group_access, "provider": provider} self.manager.gitlab.http_post(path, post_data=data, **kwargs) @@ -154,7 +154,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabDeleteError: If the server cannot perform the request """ - path = f"/groups/{self.get_id()}/ldap_group_links" + path = f"/groups/{self.encoded_id}/ldap_group_links" if provider is not None: path += f"/{provider}" path += f"/{cn}" @@ -172,7 +172,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabCreateError: If the server cannot perform the request """ - path = f"/groups/{self.get_id()}/ldap_sync" + path = f"/groups/{self.encoded_id}/ldap_sync" self.manager.gitlab.http_post(path, **kwargs) @cli.register_custom_action("Group", ("group_id", "group_access"), ("expires_at",)) @@ -198,7 +198,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): Returns: Group """ - path = f"/groups/{self.get_id()}/share" + path = f"/groups/{self.encoded_id}/share" data = { "group_id": group_id, "group_access": group_access, @@ -222,7 +222,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabDeleteError: If the server failed to perform the request """ - path = f"/groups/{self.get_id()}/share/{group_id}" + path = f"/groups/{self.encoded_id}/share/{group_id}" self.manager.gitlab.http_delete(path, **kwargs) |
