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/jobs.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/jobs.py')
| -rw-r--r-- | gitlab/v4/objects/jobs.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gitlab/v4/objects/jobs.py b/gitlab/v4/objects/jobs.py index be06f86..fbcb1fd 100644 --- a/gitlab/v4/objects/jobs.py +++ b/gitlab/v4/objects/jobs.py @@ -27,7 +27,7 @@ class ProjectJob(RefreshMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabJobCancelError: If the job could not be canceled """ - path = f"{self.manager.path}/{self.get_id()}/cancel" + path = f"{self.manager.path}/{self.encoded_id}/cancel" result = self.manager.gitlab.http_post(path) if TYPE_CHECKING: assert isinstance(result, dict) @@ -45,7 +45,7 @@ class ProjectJob(RefreshMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabJobRetryError: If the job could not be retried """ - path = f"{self.manager.path}/{self.get_id()}/retry" + path = f"{self.manager.path}/{self.encoded_id}/retry" result = self.manager.gitlab.http_post(path) if TYPE_CHECKING: assert isinstance(result, dict) @@ -63,7 +63,7 @@ class ProjectJob(RefreshMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabJobPlayError: If the job could not be triggered """ - path = f"{self.manager.path}/{self.get_id()}/play" + path = f"{self.manager.path}/{self.encoded_id}/play" self.manager.gitlab.http_post(path) @cli.register_custom_action("ProjectJob") @@ -78,7 +78,7 @@ class ProjectJob(RefreshMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabJobEraseError: If the job could not be erased """ - path = f"{self.manager.path}/{self.get_id()}/erase" + path = f"{self.manager.path}/{self.encoded_id}/erase" self.manager.gitlab.http_post(path) @cli.register_custom_action("ProjectJob") @@ -93,7 +93,7 @@ class ProjectJob(RefreshMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabCreateError: If the request could not be performed """ - path = f"{self.manager.path}/{self.get_id()}/artifacts/keep" + path = f"{self.manager.path}/{self.encoded_id}/artifacts/keep" self.manager.gitlab.http_post(path) @cli.register_custom_action("ProjectJob") @@ -108,7 +108,7 @@ class ProjectJob(RefreshMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabDeleteError: If the request could not be performed """ - path = f"{self.manager.path}/{self.get_id()}/artifacts" + path = f"{self.manager.path}/{self.encoded_id}/artifacts" self.manager.gitlab.http_delete(path) @cli.register_custom_action("ProjectJob") @@ -138,7 +138,7 @@ class ProjectJob(RefreshMixin, RESTObject): Returns: The artifacts if `streamed` is False, None otherwise. """ - path = f"{self.manager.path}/{self.get_id()}/artifacts" + path = f"{self.manager.path}/{self.encoded_id}/artifacts" result = self.manager.gitlab.http_get( path, streamed=streamed, raw=True, **kwargs ) @@ -175,7 +175,7 @@ class ProjectJob(RefreshMixin, RESTObject): Returns: The artifacts if `streamed` is False, None otherwise. """ - path = f"{self.manager.path}/{self.get_id()}/artifacts/{path}" + path = f"{self.manager.path}/{self.encoded_id}/artifacts/{path}" result = self.manager.gitlab.http_get( path, streamed=streamed, raw=True, **kwargs ) @@ -210,7 +210,7 @@ class ProjectJob(RefreshMixin, RESTObject): Returns: The trace """ - path = f"{self.manager.path}/{self.get_id()}/trace" + path = f"{self.manager.path}/{self.encoded_id}/trace" result = self.manager.gitlab.http_get( path, streamed=streamed, raw=True, **kwargs ) |
