因此,我正在使用github APIv3来获取我正在执行的项目的一些数据。我必须确保请求的结果是严格的,因为这是针对我正在撰写的有关代码味道的文章。 我必须知道开发人员正在使用哪些类,所以我的数据需要是完美的和可验证的。
我向github API发出了此HTTP请求以获取数据。问题是有时收集的数据是A,有时是B。有什么办法可以确保收集的数据是可以从API收集的完整数据? (控制台中的错误始终相同)。
for (let i = 0; i < devInfo.length; i++) {
let dev = devInfo[i];
let project = dev.project;
let name = dev.dev;
let repo = reposData.find(e => e.repo == project);
let maxDate = repo.maxDate;
let url = `repos/${repo.owner}/${project}/commits`;
console.log("Dev: " + name + " Project: " + project);
client.get(url, {
until: maxDate,
author: name
}, function(
err,
status,
body,
headers
) {
if (err != null) {
console.log(err);
}
if (Array.isArray(body)) {
body.forEach(commitInfo => {
let date = new Date(commitInfo.commit.author.date);
if (commitInfo.author != null) {
client.get(`${url}/${commitInfo.sha}`, {}, function(
err,
status,
body,
headers
) {
if (err != null) {
console.log(err);
}
if (body != null || body != undefined) {
if (Array.isArray(body.files)) {
body.files.forEach(file => {
let fnArr = file.filename.split("/");
let javaClass = fnArr.find(e => e.match(/.java/));
if (validPojects.some(e => e == project)) {
if (javaClass != null) {
let classArr = javaClass.split(".");
let className = classArr[0];
fs.appendFileSync(
"filesMoved3.csv",
project +
"," +
name +
"," +
className +
"," +
date +
"\n"
);
}
}
});
}
}
});
}
});
}
});
}