Merge Installation type stub back to source (#2649)

This commit is contained in:
Trim21
2023-08-18 07:52:37 +02:00
committed by GitHub
parent c13395ab1a
commit 99fb022124
2 changed files with 31 additions and 46 deletions
+31 -32
View File
@@ -23,8 +23,9 @@
# along with PyGithub. If not, see <http://www.gnu.org/licenses/>. #
# #
################################################################################
from __future__ import annotations
from typing import Any, Dict
from typing import TYPE_CHECKING, Any
import github.Authorization
import github.Event
@@ -37,19 +38,30 @@ import github.PaginatedList
import github.Plan
import github.Repository
import github.UserKey
from github import Consts
from github.Auth import AppAuth
from github.GithubObject import Attribute, NonCompletableGithubObject, NotSet
from github.PaginatedList import PaginatedList
from github.Requester import Requester
from . import Consts
if TYPE_CHECKING:
from github.MainClass import Github
INTEGRATION_PREVIEW_HEADERS = {"Accept": Consts.mediaTypeIntegrationPreview}
class Installation(github.GithubObject.NonCompletableGithubObject):
class Installation(NonCompletableGithubObject):
"""
This class represents Installations. The reference can be found here https://docs.github.com/en/rest/reference/apps#installations
"""
def __init__(self, requester, headers, attributes, completed):
def __init__(
self,
requester: Requester,
headers: dict[str, str | int],
attributes: Any,
completed: bool,
) -> None:
super().__init__(requester, headers, attributes, completed)
auth = self._requester.auth if self._requester is not None else None
@@ -59,48 +71,41 @@ class Installation(github.GithubObject.NonCompletableGithubObject):
auth = auth.get_installation_auth(self.id, requester=self._requester)
self._requester = self._requester.withAuth(auth)
def _initAttributes(self) -> None:
self._id: Attribute[int] = NotSet
self._app_id: Attribute[int] = NotSet
self._target_id: Attribute[int] = NotSet
self._target_type: Attribute[str] = NotSet
def __repr__(self) -> str:
return self.get__repr__({"id": self._id.value})
def get_github_for_installation(self):
def get_github_for_installation(self) -> Github:
return github.Github(**self._requester.kwargs)
@property
def id(self):
"""
:type: integer
"""
def id(self) -> int:
return self._id.value
@property
def app_id(self):
"""
:type: integer
"""
def app_id(self) -> int:
return self._app_id.value
@property
def target_id(self):
"""
:type: integer
"""
def target_id(self) -> int:
return self._target_id.value
@property
def target_type(self):
"""
:type: string
"""
def target_type(self) -> str:
return self._target_type.value
def get_repos(self):
def get_repos(self) -> PaginatedList[github.Repository.Repository]:
"""
:calls: `GET /installation/repositories <https://docs.github.com/en/rest/reference/integrations/installations#list-repositories>`_
:rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository`
"""
url_parameters = dict()
url_parameters: dict[str, Any] = {}
return github.PaginatedList.PaginatedList(
return PaginatedList(
contentClass=github.Repository.Repository,
requester=self._requester,
firstUrl="/installation/repositories",
@@ -109,13 +114,7 @@ class Installation(github.GithubObject.NonCompletableGithubObject):
list_item="repositories",
)
def _initAttributes(self) -> None:
self._id = github.GithubObject.NotSet
self._app_id = github.GithubObject.NotSet
self._target_id = github.GithubObject.NotSet
self._target_type = github.GithubObject.NotSet
def _useAttributes(self, attributes: Dict[str, Any]) -> None:
def _useAttributes(self, attributes: dict[str, Any]) -> None:
if "id" in attributes: # pragma no branch
self._id = self._makeIntAttribute(attributes["id"])
if "app_id" in attributes: # pragma no branch
-14
View File
@@ -1,14 +0,0 @@
from typing import Any, Dict
import github
from github.GithubObject import NonCompletableGithubObject
from github.PaginatedList import PaginatedList
from github.Repository import Repository
class Installation(NonCompletableGithubObject):
def _initAttributes(self) -> None: ...
def _useAttributes(self, attributes: Dict[str, Any]) -> None: ...
def get_github_for_installation(self) -> github.Github: ...
@property
def id(self) -> int: ...
def get_repos(self) -> PaginatedList[Repository]: ...