diff options
Diffstat (limited to 'rss_to_gitea/gitea.py')
-rw-r--r-- | rss_to_gitea/gitea.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/rss_to_gitea/gitea.py b/rss_to_gitea/gitea.py new file mode 100644 index 0000000..fdb1203 --- /dev/null +++ b/rss_to_gitea/gitea.py @@ -0,0 +1,54 @@ +import requests +import json + +APIBASE="/api/v1" + +class GiteaAPIAuthException (Exception): + pass + +class GiteaAPIException (Exception): + pass + +class GiteaAPI: + def __init__(self, _url, _token): + self.token = _token + self.address = _url.strip('/') + APIBASE + + headers={'Authorization':f'token {self.token}'} + result = requests.get(f'{self.address}/user',headers=headers) + + if result.status_code != 200: + raise GiteaAPIAuthException(result.json()['message']) + + self.username = result.json()['login'] + + def _api_get(self, _endpoint, _params): + headers={ + 'Authorization':f'token {self.token}', + 'Content-Type': 'application/json', + 'accept': 'application/json' + } + result = requests.get(f'{self.address}/{_endpoint}',headers=headers, params=_params) + + return result.json() + + + def createIssue(self, owner, repo, title, content): + pass + + def searchIssue(self, _owner, _repo, _title, _labels): + data= { + 'state':'open', + 'labels':_labels, + 'created_by':self.username, + 'q':_title + } + + result = self._api_get(f'repos/{_owner}/{_repo}/issues', data ) + + for issue in result: + print(issue['title']) + + def updateIssue(self, owner, repo, issueid): + pass + |