python版本
import requests
import json
from time import sleep
from datetime import datetime
owner = ''; # 仓库所有者
repo = ''; # 仓库名
issueNumber = ''; # 你想要获取评论的问题的编号
pageCount = 9 # 要获取的页数
allComments = []
def get_all_comments():
for i in range(1, pageCount):
sleep(1)
url = f"<https://api.github.com/repos/{owner}/{repo}/issues/{issueNumber}/comments?per_page=100&page={i}>"
response = requests.get(url)
if response.status_code == 200:
comments = response.json()
if len(comments) != 0:
allComments.extend(comments)
else:
save_comments_to_json()
break
def save_comments_to_json():
now = datetime.now()
formatted_date = now.strftime("%Y-%m-%d") # 格式化日期为年月日
with open(f'{formatted_date}.json', 'w') as f:
json.dump(allComments, f, indent=2)
get_all_comments()
nodejs版本
const axios = require('axios');
const fs = require('fs');
const owner = ''; # 仓库所有者
const repo = ''; # 仓库名
const issueNumber = ''; # 你想要获取评论的问题的编号
const pageCount = 9 # 要获取的页数
let allComments = [];
async function get_all_comments() {
for (let i = 0; i <= pageCount; i++) {
await new Promise(resolve => setTimeout(resolve, 1000));
const url = `https://api.github.com/repos/${owner}/${repo}/issues/${issueNumber}/comments?per_page=100&page=${i}`;
try {
const response = await axios.get(url);
if (response.status === 200) {
const comments = response.data;
if (comments.length !== 0) {
allComments = allComments.concat(comments);
} else {
save_comments_to_json();
break;
}
}
} catch (error) {
console.error(`Error fetching comments: ${error.message}`);
break;
}
}
}
function save_comments_to_json() {
// 当前日期时间,用于生成文件名
const now = DateTime.local();
fs.writeFile(`${now}.json`, JSON.stringify(allComments, null, 2), err => {
if (err) {
console.error(`Error saving comments to JSON: ${err.message}`);
} else {
console.log('Comments saved successfully.');
}
});
}
get_all_comments();