cabinet-manage/git/issues.py

179 lines
4.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding:utf-8 -*-
'''
@AuthorRobin
@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()