mirror of
https://github.com/status-im/PyGithub.git
synced 2026-08-31 10:51:14 +00:00
* A property to access the `assets` field of release (#1898) ... in order to avoid extra requests. <https://github.com/PyGithub/PyGithub/issues/1898> * Remove comment to comply the review * Add tests for GitRelease.assets --------- Co-authored-by: green-green-avk <45503261+green-green-avk@users.noreply.github.com>
This commit is contained in:
co-authored by
green-green-avk
parent
6c53e5442a
commit
7cf3dfc18e
@@ -170,6 +170,14 @@ class GitRelease(github.GithubObject.CompletableGithubObject):
|
||||
self._completeIfNotSet(self._zipball_url)
|
||||
return self._zipball_url.value
|
||||
|
||||
@property
|
||||
def assets(self):
|
||||
"""
|
||||
:type: list of :class:`github.GitReleaseAsset.GitReleaseAsset`
|
||||
"""
|
||||
self._completeIfNotSet(self._assets)
|
||||
return self._assets.value
|
||||
|
||||
def delete_release(self):
|
||||
"""
|
||||
:calls: `DELETE /repos/{owner}/{repo}/releases/{release_id} <https://docs.github.com/en/rest/reference/repos#delete-a-release>`_
|
||||
@@ -333,6 +341,7 @@ class GitRelease(github.GithubObject.CompletableGithubObject):
|
||||
self._published_at = github.GithubObject.NotSet
|
||||
self._tarball_url = github.GithubObject.NotSet
|
||||
self._zipball_url = github.GithubObject.NotSet
|
||||
self._assets = github.GithubObject.NotSet
|
||||
|
||||
def _useAttributes(self, attributes):
|
||||
if "id" in attributes:
|
||||
@@ -369,3 +378,7 @@ class GitRelease(github.GithubObject.CompletableGithubObject):
|
||||
self._tarball_url = self._makeStringAttribute(attributes["tarball_url"])
|
||||
if "zipball_url" in attributes:
|
||||
self._zipball_url = self._makeStringAttribute(attributes["zipball_url"])
|
||||
if "assets" in attributes:
|
||||
self._assets = self._makeListOfClassesAttribute(
|
||||
github.GitReleaseAsset.GitReleaseAsset, attributes["assets"]
|
||||
)
|
||||
|
||||
@@ -11,6 +11,8 @@ class GitRelease(CompletableGithubObject):
|
||||
def _initAttributes(self) -> None: ...
|
||||
def _useAttributes(self, attributes: Dict[str, Any]) -> None: ...
|
||||
@property
|
||||
def assets(self) -> list[GitReleaseAsset]: ...
|
||||
@property
|
||||
def author(self) -> NamedUser: ...
|
||||
@property
|
||||
def body(self) -> str: ...
|
||||
|
||||
@@ -156,6 +156,12 @@ class GitRelease(Framework.TestCase):
|
||||
),
|
||||
)
|
||||
self.assertEqual(repr(release), 'GitRelease(title="Test")')
|
||||
self.assertEqual(len(release.assets), 1)
|
||||
self.assertEqual(
|
||||
repr(release.assets[0]),
|
||||
'GitReleaseAsset(url="https://api.github.com/repos/'
|
||||
f'{user}/{repo_name}/releases/assets/{release.raw_data["assets"][0]["id"]}")',
|
||||
)
|
||||
|
||||
def testGetRelease(self):
|
||||
release_by_id = self.release
|
||||
|
||||
Reference in New Issue
Block a user