要获取你每天提交(commit)的项目,你可以使用 GitHub 的 GraphQL API 查询你的提交历史。以下是一个更新后的示例代码,它将同时获取你 Star 的项目和你每天提交的项目。
更新后的代码
require('dotenv').config();
const fetch = require('node-fetch');
const GITHUB_TOKEN = process.env.GITHUB_TOKEN;
async function fetchStarredRepos() {
const query = `
{
viewer {
starredRepositories(first: 100) {
nodes {
name
url
owner {
login
}
createdAt
openGraphImageUrl
}
}
contributionsCollection {
commitContributionsByRepository {
repository {
name
url
owner {
login
}
}
contributions {
totalCount
occurredAt
}
}
}
}
}`;
const response = await fetch('https://api.github.com/graphql', {
method: 'POST',
headers: {
'Authorization': `Bearer ${GITHUB_TOKEN}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({ query }),
});
const data = await response.json();
if (data.errors) {
console.error('Error fetching data:', data.errors);
return;
}
// 获取 Starred Repositories
const starredRepos = data.data.viewer.starredRepositories.nodes;
console.log('Starred Repositories:');
starredRepos.forEach(repo => {
console.log(`项目名称: ${repo.name}`);
console.log(`链接: ${repo.url}`);
console.log(`作者: ${repo.owner.login}`);
console.log(`OG图: ${repo.openGraphImageUrl}`);
console.log(`Star时间: ${repo.createdAt}`);
console.log('-------------------------');
});
// 获取提交的项目
const commitRepos = data.data.viewer.contributionsCollection.commitContributionsByRepository;
console.log('Commited Repositories:');
commitRepos.forEach(commitRepo => {
console.log(`项目名称: ${commitRepo.repository.name}`);
console.log(`链接: ${commitRepo.repository.url}`);
console.log(`作者: ${commitRepo.repository.owner.login}`);
console.log(`提交次数: ${commitRepo.contributions.totalCount}`);
console.log('-------------------------');
});
}
fetchStarredRepos();
代码说明:
- Starred Repositories: 代码部分与之前相同,获取你 Star 的项目的信息。
- Commit Repositories: 新增的部分使用
contributionsCollection
查询获取你在各个项目中的提交信息,包括项目名称、链接、作者和提交次数。
注意事项:
- 你可能需要根据自己的需求调整查询的数量(例如,
first: 100
),以获取更多或更少的项目。 - GitHub API 的速率限制仍然适用,确保在使用时遵循相关规定。
运行此代码后,你将看到你 Star 的项目和你每天提交的项目的详细信息。