From 9b8d4d7280aa3c11aa476630532e30e1e4d4bb37 Mon Sep 17 00:00:00 2001 From: Spacetown Date: Tue, 3 Aug 2021 20:42:10 +0200 Subject: [PATCH] [BitBucket] Fix get_project_tags. If tag_name is given a single tag is returned, else a generator for the tags (paged API) --- atlassian/bitbucket/__init__.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/atlassian/bitbucket/__init__.py b/atlassian/bitbucket/__init__.py index 80b3e4398..c536ed496 100644 --- a/atlassian/bitbucket/__init__.py +++ b/atlassian/bitbucket/__init__.py @@ -1200,7 +1200,7 @@ def get_tags( params["orderBy"] = order_by return self._get_paged(url, params=params) - def get_project_tags(self, project_key, repository_slug, tag_name): + def get_project_tags(self, project_key, repository_slug, tag_name=None): """ Retrieve a tag in the specified repository. The authenticated user must have REPO_READ permission for the context repository to call this resource. @@ -1211,7 +1211,10 @@ def get_project_tags(self, project_key, repository_slug, tag_name): :return: """ url = self._url_repo_tags(project_key, repository_slug) - return self.get(url) + if tag_name is not None: + return self.get("{}/{}".format(url, tag_name)) + + return self._get_paged(url) def set_tag(self, project_key, repository_slug, tag_name, commit_revision, description=None): """ @@ -1225,13 +1228,13 @@ def set_tag(self, project_key, repository_slug, tag_name, commit_revision, descr :return: """ url = self._url_repo_tags(project_key, repository_slug) - body = {} - if tag_name is not None: - body["name"] = tag_name - if tag_name is not None: - body["startPoint"] = commit_revision - if tag_name is not None: + body = { + "name": tag_name, + "startPoint": commit_revision, + } + if description is not None: body["message"] = description + return self.post(url, data=body) def delete_tag(self, project_key, repository_slug, tag_name): @@ -1247,7 +1250,6 @@ def delete_tag(self, project_key, repository_slug, tag_name): self._url_repo_tags(project_key, repository_slug, api_root="rest/git"), tag_name, ) - (project_key, repository_slug, tag_name) return self.delete(url) def _url_repo_hook_settings(self, project_key, repository_slug):