# -*- coding:utf-8 -*- ''' @Author:Robin @Email: 329080237@qq.com @Wechat: 15618110227 @File: issues.py @Date: 2021/9/28 20:33 @Description: ''' from utils.public import * from .base import RequestGit import json def getIssues(request, owner, repo): data = json.loads(request.GET.get("data")) query = data.get("query") payload = {} if query: payload = { "page": query.get("pageNo", 1), "limit": query.get("pageSize", 10), "q": query.get("q"), "state": query.get("state"), "labels": query.get("labels") } console(payload) api = "/repos/{}/{}/issues".format(owner, repo) res = RequestGit(request, api).get(query=payload) if res.status_code == 200: items = json.loads(res.text) total = res.headers['x-total-count'] else: print(res.text) raise Exception("获取issues列表信息失败!") resData = { "items": items, "total": int(total) } #console(resData) return jsonData(data=resData) def issueDetail(request, owner, repo, id): api = '/repos/{}/{}/issues/{}'.format(owner, repo, id) res = RequestGit(request, api).get() if res.status_code == 200: items = json.loads(res.text) else: print(res.text) raise Exception("获取issues详情失败!") # console(resData) return jsonData(data=items) def createIssue(request, owner, repo): data = json.loads(request.body) payload = { "title": data.get("title"), "body": data.get("body") } print(payload) api = "/repos/{}/{}/issues".format(owner, repo) res = RequestGit(request, api).post(payload=payload) if res.status_code == 201: print('创建issue成功!') else: print(res.text) raise Exception("创建issues失败!") # console(resData) return jsonData() def updateIssue(request, owner, repo, id): data = json.loads(request.body) payload = { "assignees": data.get("assignees") } print(payload) api = "/repos/{}/{}/issues/{}".format(owner, repo, id) res = RequestGit(request, api).patch(payload=payload) if res.status_code == 201: print('指派成员成功!') else: print(res.text) raise Exception("指派成员失败!") # console(resData) return jsonData() def getIssuesClosedTotal(request, owner, repo): payload = { "state": "closed" } api = "/repos/{}/{}/issues".format(owner, repo) res = RequestGit(request, api).get(query=payload) if res.status_code == 200: total = res.headers['x-total-count'] else: print(res.text) raise Exception("获取issues 关闭数失败!") resData = { "total": int(total) } # console(resData) return jsonData(data=resData) def getRepoLabels(request, owner, repo): api = "/repos/{}/{}/labels".format(owner, repo) res = RequestGit(request, api).get() if res.status_code == 200: items = json.loads(res.text) else: print(res.text) raise Exception("获取issues 关闭数失败!") resData = { "items": items, "total": len(items) } # console(resData) return jsonData(data=resData) def getCollaborators(request, owner, repo): api = "/repos/{}/{}/collaborators".format(owner, repo) res = RequestGit(request, api).get(token=True) if res.status_code == 200: items = json.loads(res.text) else: print(res.text) raise Exception("获取issues 关闭数失败!") resData = { "items": items, "total": len(items) } # console(resData) return jsonData(data=resData) def createRepoLabel(request, owner, repo): data = json.loads(request.body) api = "/repos/{}/{}/labels".format(owner, repo) res = RequestGit(request, api).post(token=True, payload=data) if res.status_code == 201: items = json.loads(res.text) else: print(res.text) raise Exception("创建标签失败!") return jsonData() def delRepoLabel(request, owner, repo, id): api = "/repos/{}/{}/labels/{}".format(owner, repo, id) res = RequestGit(request, api).delete(token=True) print(res) if res.status_code == 204: print('删除成功!') else: print(res.text) raise Exception("删除标签失败!") return jsonData() def updateRepoLabel(request, owner, repo, id): api = "/repos/{}/{}/labels/{}".format(owner, repo, id) payload = json.loads(request.body) res = RequestGit(request, api).patch(token=True, payload=payload) if res.status_code == 200: print('更新成功!') else: print(res.text) raise Exception("修改标签失败!") return jsonData()