forked from Lesin/reposync
180 lines
6.1 KiB
Python
180 lines
6.1 KiB
Python
import urllib
|
||
import requests
|
||
import mysql.connector
|
||
|
||
# 连接到MySQL数据库
|
||
# conn = mysql.connector.connect(
|
||
# host="localhost",
|
||
# user="root",
|
||
# password="185102xmy",
|
||
# database="db1"
|
||
# )
|
||
# cursor = conn.cursor()
|
||
# cursor.execute('DROP TABLE IF EXISTS gitee_issue_list')
|
||
# # 创建一个表
|
||
# cursor.execute('''CREATE TABLE IF NOT EXISTS gitee_issue_list
|
||
# (id INT AUTO_INCREMENT PRIMARY KEY, number VARCHAR(10), title VARCHAR(100), body VARCHAR(1000), state VARCHAR(15), priority INT)''')
|
||
# 你的仓库信息
|
||
owner = 'xumingyang21'
|
||
repo = 'reposyncer2'
|
||
|
||
# Gitee获取issue的API URL
|
||
url = f"https://gitee.com/api/v5/repos/{owner}/{repo}/issues"
|
||
|
||
# 构造请求头
|
||
token = 'f2be2313581c1fde50b16bf35bb655c5'
|
||
headers = {'Authorization': f'token {token}'}
|
||
|
||
# 发送POST请求 获取状态为open的issue
|
||
data = {
|
||
"access_token":token,
|
||
"owner":owner,
|
||
"repo":repo,
|
||
"state":'progressing',
|
||
"sort":'updated',
|
||
"direction":'asc'
|
||
}
|
||
|
||
# 将字典转换为查询字符串
|
||
query_string = urllib.parse.urlencode(data)
|
||
|
||
# 完整的请求 URL,包括查询字符串
|
||
full_url1 = f"{url}?{query_string}"
|
||
|
||
response = requests.get(full_url1, headers=headers, json=data)
|
||
# 打印响应
|
||
# print(response.text)
|
||
# 检查响应状态码
|
||
if response.status_code == 200:
|
||
# 注意:这里假设响应体中包含一个'number'字段作为issue的ID,但实际上Gitee可能返回不同的结构
|
||
# 你需要根据实际的响应结构来调整以下代码
|
||
issue_info = response.json()
|
||
print(issue_info)
|
||
# cnt=0
|
||
for issue in issue_info:
|
||
print('number1:',issue['number'])
|
||
print('state1:',issue['state'])
|
||
print('title1:',issue['title'])
|
||
print('body1:',issue['body'])
|
||
print('priority:',issue['priority'])
|
||
# cursor.execute('INSERT INTO gitee_issue_list (number, title, body, state, priority) VALUES (%s, %s, %s, %s, %s)',
|
||
# (issue['number'],issue['title'],issue['body'],issue['state'],issue['priority']))
|
||
# cnt+=1
|
||
# print(cnt)
|
||
else:
|
||
print(f"创建issue失败12,状态码:{response.status_code},错误信息:{response.text}")
|
||
#
|
||
# # 提交事务
|
||
# conn.commit()
|
||
# # 关闭游标和连接
|
||
# cursor.close()
|
||
# conn.close()
|
||
|
||
# # 发送POST请求 获取状态为rejected的请求
|
||
# data1 = {
|
||
# # "access_token":token,
|
||
# "owner":owner,
|
||
# "repo":repo,
|
||
# "state":'rejected',
|
||
# "sort":'created',
|
||
# "direction":'asc'
|
||
# }
|
||
# # 将字典转换为查询字符串
|
||
# query_string = urllib.parse.urlencode(data1)
|
||
#
|
||
# # 完整的请求 URL,包括查询字符串
|
||
# full_url2 = f"{url}?{query_string}"
|
||
#
|
||
# response2 = requests.get(full_url2, headers=headers)
|
||
# # 打印响应
|
||
# # print(response.text)
|
||
# # 检查响应状态码
|
||
# if response2.status_code == 200:
|
||
# # 注意:这里假设响应体中包含一个'number'字段作为issue的ID,但实际上Gitee可能返回不同的结构
|
||
# # 你需要根据实际的响应结构来调整以下代码
|
||
# issue_info2 = response2.json()
|
||
# for issue in issue_info2:
|
||
# print('number:',issue['number'])
|
||
# print('state:',issue['state'])
|
||
# print('title:',issue['title'])
|
||
# print('body:',issue['body'])
|
||
# cursor.execute('INSERT INTO gitee_issue_list (number, title, body, state) VALUES (%s, %s, %s, %s)',
|
||
# (issue['number'],issue['title'],issue['body'],issue['state']))
|
||
#
|
||
# else:
|
||
# print(f"创建issue失败12,状态码:{response2.status_code},错误信息:{response2.text}")
|
||
#
|
||
# # 发送POST请求 获取状态为rejected的请求
|
||
# data2 = {
|
||
# # "access_token":token,
|
||
# "owner":owner,
|
||
# "repo":repo,
|
||
# "state":'progressing',
|
||
# "sort":'created',
|
||
# "direction":'asc'
|
||
# }
|
||
# # 将字典转换为查询字符串
|
||
# query_string = urllib.parse.urlencode(data1)
|
||
#
|
||
# # 完整的请求 URL,包括查询字符串
|
||
# full_url3 = f"{url}?{query_string}"
|
||
#
|
||
# response3 = requests.get(full_url3, headers=headers)
|
||
# # 打印响应
|
||
# # print(response.text)
|
||
# # 检查响应状态码
|
||
# if response3.status_code == 200:
|
||
# # 注意:这里假设响应体中包含一个'number'字段作为issue的ID,但实际上Gitee可能返回不同的结构
|
||
# # 你需要根据实际的响应结构来调整以下代码
|
||
# issue_info3 = response3.json()
|
||
# for issue in issue_info3:
|
||
# print('number:',issue['number'])
|
||
# print('state:',issue['state'])
|
||
# print('title:',issue['title'])
|
||
# print('body:',issue['body'])
|
||
# cursor.execute('INSERT INTO gitee_issue_list (number, title, body, state) VALUES (%s, %s, %s, %s)',
|
||
# (issue['number'],issue['title'],issue['body'],issue['state']))
|
||
#
|
||
# else:
|
||
# print(f"创建issue失败12,状态码:{response3.status_code},错误信息:{response3.text}")
|
||
#
|
||
#
|
||
# # 发送POST请求 获取状态为rejected的请求
|
||
# data2 = {
|
||
# # "access_token":token,
|
||
# "owner":owner,
|
||
# "repo":repo,
|
||
# "state":'closed',
|
||
# "sort":'created',
|
||
# "direction":'asc'
|
||
# }
|
||
# # 将字典转换为查询字符串
|
||
# query_string = urllib.parse.urlencode(data1)
|
||
#
|
||
# # 完整的请求 URL,包括查询字符串
|
||
# full_url3 = f"{url}?{query_string}"
|
||
#
|
||
# response4 = requests.get(full_url3, headers=headers)
|
||
# # 打印响应
|
||
# # print(response.text)
|
||
# # 检查响应状态码
|
||
# if response4.status_code == 200:
|
||
# # 注意:这里假设响应体中包含一个'number'字段作为issue的ID,但实际上Gitee可能返回不同的结构
|
||
# # 你需要根据实际的响应结构来调整以下代码
|
||
# issue_info4 = response4.json()
|
||
# for issue in issue_info4:
|
||
# print('number:',issue['number'])
|
||
# print('state:',issue['state'])
|
||
# print('title:',issue['title'])
|
||
# print('body:',issue['body'])
|
||
# cursor.execute('INSERT INTO issue_list (number, title, body, state) VALUES (%s, %s, %s, %s)',
|
||
# (issue['number'],issue['title'],issue['body'],issue['state']))
|
||
#
|
||
# # 提交事务
|
||
# conn.commit()
|
||
# # 关闭游标和连接
|
||
# cursor.close()
|
||
# conn.close()
|
||
#
|
||
# else:
|
||
# print(f"创建issue失败12,状态码:{response4.status_code},错误信息:{response4.text}") |