179 lines
4.7 KiB
Python
179 lines
4.7 KiB
Python
# -*- 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() |