要获取你每天提交(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();

代码说明:

  1. Starred Repositories: 代码部分与之前相同,获取你 Star 的项目的信息。
  2. Commit Repositories: 新增的部分使用 contributionsCollection 查询获取你在各个项目中的提交信息,包括项目名称、链接、作者和提交次数。

注意事项:

  • 你可能需要根据自己的需求调整查询的数量(例如,first: 100),以获取更多或更少的项目。
  • GitHub API 的速率限制仍然适用,确保在使用时遵循相关规定。

运行此代码后,你将看到你 Star 的项目和你每天提交的项目的详细信息。