summaryrefslogtreecommitdiff
path: root/worker/GiteaWorker.py
blob: 7a2c79c64d2cdb050a9a95c345abd6ca4a798c40 (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
from util import Logger, getProjRepoName
import requests


class GiteaWorker():
    def __init__(self, args, baseUrl, orgName, token, hgroups,
                 logger=Logger()):
        self.args = args
        # self.id_ = id_
        # self.name = name
        # self.projNum = projNum
        # self.projScores = projScores
        self.logger = logger
        self.names = {
            item[1]: item[0]
            for items in hgroups.values() for item in items
        }
        self.baseUrl = baseUrl
        self.orgName = orgName
        self.sess = requests.Session()
        self.sess.params.update({"access_token": token})

    def raiseIssues(self, scores):
        for key, value in scores.items():
            if not value.get('projComment'): continue
            id_ = self.names[key]
            repoName = getProjRepoName([id_, key, self.args.proj])
            url = f"{self.baseUrl}/repos/{self.orgName}/{repoName}/issues"
            data = {
                "title": f"m{self.args.ms} feedback",
                "body": '\n'.join(value.get('projComment')),
            }
            req = self.sess.post(url, data)
            self.logger.debug(f"{repoName} issue {req.status_code} {req.text}")