From 4e3098051448d888e493824f0e6e837af06102a7 Mon Sep 17 00:00:00 2001 From: RGBCube <78925721+RGBCube@users.noreply.github.com> Date: Mon, 27 Jun 2022 13:37:18 +0300 Subject: [PATCH] Add deploy keys routes --- github/internals/http.py | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/github/internals/http.py b/github/internals/http.py index c24c4a1..00aa5e7 100644 --- a/github/internals/http.py +++ b/github/internals/http.py @@ -55,7 +55,7 @@ class RateLimits(NamedTuple): # Commits # Dependabot # Dependency Graph -# Deploy keys +# Deploy keys DONE # Deployments # Emojis DONE # Enterprise administration @@ -862,4 +862,32 @@ class HTTPClient: return await self.request("GET", "/codes_of_conduct") async def get_code_of_conduct(self, *, key: str): - return await self.request("GET", f"/codes_of_conduct/{key}") \ No newline at end of file + return await self.request("GET", f"/codes_of_conduct/{key}") + + # === DEPLOY KEYS === # + + async def list_deploy_keys(self, *, owner: str, repo: str, per_page: Optional[int] = None, page: Optional[int] = None): + params = {} + + if per_page: + params["per_page"] = per_page + if page: + params["page"] = page + + return await self.request("GET", f"/repos/{owner}/{repo}/keys", params=params) + + async def create_deploy_key(self, *, owner: str, repo: str, title: Optional[str] = None, key: str, read_only: Optional[bool] = None): + data = {"key": key} + + if title: + data["title"] = title + if read_only: + data["read_only"] = read_only + + return await self.request("POST", f"/repos/{owner}/{repo}/keys", data=data) + + async def get_deploy_key(self, *, owner: str, repo: str, key_id: int): + return await self.request("GET", f"/repos/{owner}/{repo}/keys/{key_id}") + + async def delete_deploy_key(self, *, owner: str, repo: str, key_id: int): + return await self.request("DELETE", f"/repos/{owner}/{repo}/keys/{key_id}")