aboutsummaryrefslogtreecommitdiff
path: root/rss_to_gitea/gitea.py
blob: fdb1203e9aa9c52e744a45be92e253d52e82ab20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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