8000 Issue 434: Define method to get release by tag name · pythonthings/github3.py@152bb8d · GitHub
[go: up one dir, main page]

Skip to content

Commit 152bb8d

Browse files
committed
Issue 434: Define method to get release by tag name
1 parent e993574 commit 152bb8d

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

github3/repos/repo.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1653,6 +1653,17 @@ def release(self, id):
16531653
json = self._json(self._get(url), 200)
16541654
return self._instance_or_null(Release, json)
16551655

1656+
def release_by_tag_name(self, tag_name):
1657+
"""Get a relase by tag name
1658+
1659+
:param str tag_name: (required) name of tag
1660+
:returns: :class:`Release <github3.repos.release.Release>`
1661+
"""
1662+
url = self._build_url('releases', 'tags', tag_name,
1663+
base_url=self._api)
1664+
json = self._json(self._get(url), 200)
1665+
return self._instance_or_null(Release, json)
1666+
16561667
def releases(self, number=-1, etag=None):
16571668
r"""Iterate over releases for this repository.
16581669

tests/test_repos.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,14 @@ def test_ref(self):
491491
assert isinstance(self.repo.ref('fakesha'), github3.git.Reference)
492492
self.mock_assertions()
493493

494+
def test_release_by_tag_name(self):
495+
self.response('release', 200)
496+
self.get(self.api + 'releases/tags/v0.7.1')
497+
498+
assert isinstance(self.repo.release_by_tag_name('v0.7.1'),
499+
github3.repos.release.Release)
500+
self.mock_assertions()
501+
494502
def test_remove_collaborator(self):
495503
self.response('', 204)
496504
self.delete(self.api + 'collaborators/login')

0 commit comments

Comments
 (0)
0