From 2643869b883349bad928ae28aa819f368e7bb75f Mon Sep 17 00:00:00 2001 From: MrlingXD <90316914+wling-art@users.noreply.github.com> Date: Sun, 23 Nov 2025 18:25:37 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20=E5=B0=86=E8=B4=A1?= =?UTF-8?q?=E7=8C=AE=E8=80=85=E6=8B=89=E5=8F=96=E6=94=B9=E4=B8=BA=20tsx=20?= =?UTF-8?q?ai=20=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/fetchContributors.js | 175 -- .../ContributorCard/{index.jsx => index.tsx} | 73 +- static/data/contributors.json | 1827 ----------------- 3 files changed, 45 insertions(+), 2030 deletions(-) delete mode 100644 scripts/fetchContributors.js rename src/components/ContributorCard/{index.jsx => index.tsx} (84%) delete mode 100644 static/data/contributors.json diff --git a/scripts/fetchContributors.js b/scripts/fetchContributors.js deleted file mode 100644 index a5a4d0e50..000000000 --- a/scripts/fetchContributors.js +++ /dev/null @@ -1,175 +0,0 @@ -const fs = require("fs"); -const path = require("path"); - -const GITHUB_TOKEN = process.env.GITHUB_TOKEN; - -function buildHeaders() { - const headers = { - "User-Agent": "NitWikit-contributor-fetcher", - Accept: "application/vnd.github+json" - }; - - if (GITHUB_TOKEN) { - headers.Authorization = `Bearer ${GITHUB_TOKEN}`; - } - - return headers; -} - -// 从现有组件复用的函数 -async function fetchContributors(repo) { - try { - let allContributors = []; - let page = 1; - let hasNextPage = true; - - while (hasNextPage) { - const response = await fetch( - `https://api.github.com/repos/${repo}/contributors?per_page=100&page=${page}`, - { - headers: buildHeaders() - } - ); - if (!response.ok) { - throw new Error("获取贡献者数据失败"); - } - - const data = await response.json(); - if (data.length === 0) { - hasNextPage = false; - } else { - allContributors = [...allContributors, ...data]; - page++; - } - } - - console.log(`已获取 ${allContributors.length} 位贡献者数据`); - return allContributors; - } catch (error) { - console.error("获取贡献者数据出错:", error); - return []; - } -} - -async function fetchAllContributorStats(repo) { - try { - const response = await fetch(`https://api.github.com/repos/${repo}/stats/contributors`, { - headers: buildHeaders() - }); - if (!response.ok) { - if (response.status === 202) { - await new Promise((resolve) => setTimeout(resolve, 3000)); - return fetchAllContributorStats(repo); - } - throw new Error("获取贡献者统计数据失败"); - } - - const data = await response.json(); - - if (!Array.isArray(data)) { - console.error("GitHub API返回的统计数据不是数组格式:", data); - return []; - } - - return data; - } catch (error) { - console.error("获取贡献者统计数据出错:", error); - return []; - } -} - -function isBot(username) { - const botPatterns = [/bot\b/i, /\[bot\]/i, /github-actions/i, /imgbot/i]; - - const notBots = ["robotics", "robot", "robotman", "robotboy"]; - if (notBots.some((name) => username.toLowerCase().includes(name))) { - return false; - } - - return botPatterns.some((pattern) => pattern.test(username)); -} - -function getContributorStats(allStats, username) { - if (!Array.isArray(allStats)) { - return { additions: 0, deletions: 0, commits: 0 }; - } - - const userStats = allStats.find((stat) => stat && stat.author && stat.author.login === username); - if (!userStats) { - return { additions: 0, deletions: 0, commits: 0 }; - } - - let additions = 0; - let deletions = 0; - let commits = 0; - userStats.weeks.forEach((week) => { - additions += week.a; - deletions += week.d; - commits += week.c; - }); - - return { - additions, - deletions, - commits: userStats.total ?? commits - }; -} - -async function main() { - const repo = "Cubic-Project/NitWikit"; // 你的仓库 - - console.log(`开始获取 ${repo} 的贡献者数据...`); - - try { - // 获取基本贡献者数据 - const contributorsData = await fetchContributors(repo); - - // 过滤掉机器人账户 - const filteredContributors = contributorsData.filter((contributor) => !isBot(contributor.login)); - - // 获取详细统计数据 - let statsData = []; - try { - statsData = await fetchAllContributorStats(repo); - } catch (statsError) { - console.warn("获取详细统计数据失败,将使用基本贡献数据:", statsError); - } - - // 合并统计数据到贡献者数据 - const contributorsWithStats = filteredContributors.map((contributor) => { - const { additions, deletions, commits } = getContributorStats(statsData, contributor.login); - - return { - ...contributor, - additions, - deletions, - commits - }; - }); - - // 过滤有效贡献者并排序 - const validContributors = contributorsWithStats.filter( - (c) => c.contributions > 0 || c.commits > 0 || c.additions > 0 || c.deletions > 0 - ); - const sorted = validContributors.sort( - (a, b) => (b.contributions || b.commits) - (a.contributions || a.commits) - ); - - // 创建静态目录(如果不存在) - const staticDir = path.join(__dirname, "../static/data"); - if (!fs.existsSync(staticDir)) { - fs.mkdirSync(staticDir, { recursive: true }); - } - - // 保存为JSON文件 - const outputPath = path.join(staticDir, "contributors.json"); - fs.writeFileSync(outputPath, JSON.stringify(sorted, null, 2)); - - console.log(`成功将 ${sorted.length} 位贡献者数据保存到 ${outputPath}`); - } catch (error) { - console.error("处理贡献者数据时出错:", error); - process.exit(1); - } -} - -main(); diff --git a/src/components/ContributorCard/index.jsx b/src/components/ContributorCard/index.tsx similarity index 84% rename from src/components/ContributorCard/index.jsx rename to src/components/ContributorCard/index.tsx index 713d517b8..460f3cd29 100644 --- a/src/components/ContributorCard/index.jsx +++ b/src/components/ContributorCard/index.tsx @@ -1,14 +1,40 @@ -import React, { useState, useEffect } from "react"; +import React, { useEffect, useState } from "react"; import "./styles.css"; +interface Contributor { + id: number; + login: string; + avatar_url: string; + html_url: string; + contributions: number; + additions?: number; + deletions?: number; + total?: number; +} + +interface ContributorStats { + author: { + login: string; + }; + weeks: Array<{ + a: number; + d: number; + }>; +} + +interface ContributorCardItemProps { + contributor: Contributor; + rank?: number; +} + /** * 获取GitHub贡献者数据(带分页) * @param {string} repo 仓库名称,格式为 "用户名/仓库名" * @returns {Promise} 贡献者数据数组 */ -async function fetchContributors(repo) { +async function fetchContributors(repo: string): Promise { try { - let allContributors = []; + let allContributors: Contributor[] = []; let page = 1; let hasNextPage = true; @@ -41,7 +67,7 @@ async function fetchContributors(repo) { * @param {string} repo 仓库名称,格式为 "用户名/仓库名" * @returns {Promise} 包含统计数据的贡献者数组 */ -async function fetchAllContributorStats(repo) { +async function fetchAllContributorStats(repo: string): Promise { try { // 直接获取全部贡献者统计数据 const response = await fetch(`https://api.github.com/repos/${repo}/stats/contributors`); @@ -76,7 +102,7 @@ async function fetchAllContributorStats(repo) { * @param {string} username 贡献者用户名 * @returns {Object} 贡献者统计数据 */ -function getContributorStats(allStats, username) { +function getContributorStats(allStats: ContributorStats[], username: string): { additions: number; deletions: number } { // 确保 allStats 是数组 if (!Array.isArray(allStats)) { console.error("获取的统计数据格式错误:", allStats); @@ -104,7 +130,7 @@ function getContributorStats(allStats, username) { * @param {string} username 用户名 * @returns {boolean} 是否为机器人 */ -function isBot(username) { +function isBot(username: string): boolean { const botPatterns = [ /bot\b/i, // 匹配包含bot单词的用户名 /\[bot\]/i, // 匹配[bot] @@ -126,7 +152,7 @@ function isBot(username) { * @param {number} num 要格式化的数字 * @returns {string} 格式化后的字符串 */ -function formatNumber(num) { +function formatNumber(num: number): string { if (num >= 1000000) { return (num / 1000000).toFixed(1) + "M"; } else if (num >= 1000) { @@ -138,7 +164,7 @@ function formatNumber(num) { /** * 单个贡献者卡片组件 */ -export function ContributorCardItem({ contributor, rank }) { +export function ContributorCardItem({ contributor, rank }: ContributorCardItemProps): React.ReactElement { // 优先使用详细统计中的增删行数,如果没有则使用贡献数 const additions = contributor.additions || 0; const deletions = contributor.deletions || 0; @@ -175,13 +201,17 @@ export function ContributorCardItem({ contributor, rank }) { ); } +interface ContributorCardProps { + repo?: string; +} + /** * 贡献者卡片列表组件 */ -export default function ContributorCard({ repo = "Cubic-Project/NitWikit" }) { - const [contributors, setContributors] = useState([]); +export default function ContributorCard({ repo = "Cubic-Project/NitWikit" }: ContributorCardProps): React.ReactElement { + const [contributors, setContributors] = useState([]); const [loading, setLoading] = useState(true); - const [error, setError] = useState(null); + const [error, setError] = useState(null); // 获取所有贡献者数据并处理 useEffect(() => { @@ -189,28 +219,14 @@ export default function ContributorCard({ repo = "Cubic-Project/NitWikit" }) { try { setLoading(true); - // 首先尝试从静态JSON文件加载 - try { - const response = await fetch("/data/contributors.json"); - if (response.ok) { - const staticData = await response.json(); - console.log(`从静态JSON加载了 ${staticData.length} 位贡献者数据`); - setContributors(staticData); - setLoading(false); - return; // 成功加载静态数据,直接返回 - } - } catch (staticError) { - console.warn("无法加载静态贡献者数据,将尝试从GitHub API获取:", staticError); - } - - // 静态数据加载失败,回退到直接请求GitHub API + // 直接从GitHub API获取贡献者数据 const contributorsData = await fetchContributors(repo); // 过滤掉机器人账户 const filteredContributors = contributorsData.filter((contributor) => !isBot(contributor.login)); // 尝试获取详细统计数据 - let statsData = []; + let statsData: ContributorStats[] = []; try { statsData = await fetchAllContributorStats(repo); } catch (statsError) { @@ -240,8 +256,9 @@ export default function ContributorCard({ repo = "Cubic-Project/NitWikit" }) { console.log(`处理后共有 ${sorted.length} 位有效贡献者`); setContributors(sorted); } catch (err) { + const errorMessage = err instanceof Error ? err.message : "未知错误"; console.error("加载贡献者数据出错:", err); - setError(err.message); + setError(errorMessage); } finally { setLoading(false); } diff --git a/static/data/contributors.json b/static/data/contributors.json deleted file mode 100644 index 6382aba53..000000000 --- a/static/data/contributors.json +++ /dev/null @@ -1,1827 +0,0 @@ -[ - { - "login": "postyizhan", - "id": 97342038, - "node_id": "U_kgDOBc1SVg", - "avatar_url": "https://avatars.githubusercontent.com/u/97342038?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/postyizhan", - "html_url": "https://github.com/postyizhan", - "followers_url": "https://api.github.com/users/postyizhan/followers", - "following_url": "https://api.github.com/users/postyizhan/following{/other_user}", - "gists_url": "https://api.github.com/users/postyizhan/gists{/gist_id}", - "starred_url": "https://api.github.com/users/postyizhan/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/postyizhan/subscriptions", - "organizations_url": "https://api.github.com/users/postyizhan/orgs", - "repos_url": "https://api.github.com/users/postyizhan/repos", - "events_url": "https://api.github.com/users/postyizhan/events{/privacy}", - "received_events_url": "https://api.github.com/users/postyizhan/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 612, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "lilingfengdev", - "id": 145678359, - "node_id": "U_kgDOCK7gFw", - "avatar_url": "https://avatars.githubusercontent.com/u/145678359?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/lilingfengdev", - "html_url": "https://github.com/lilingfengdev", - "followers_url": "https://api.github.com/users/lilingfengdev/followers", - "following_url": "https://api.github.com/users/lilingfengdev/following{/other_user}", - "gists_url": "https://api.github.com/users/lilingfengdev/gists{/gist_id}", - "starred_url": "https://api.github.com/users/lilingfengdev/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/lilingfengdev/subscriptions", - "organizations_url": "https://api.github.com/users/lilingfengdev/orgs", - "repos_url": "https://api.github.com/users/lilingfengdev/repos", - "events_url": "https://api.github.com/users/lilingfengdev/events{/privacy}", - "received_events_url": "https://api.github.com/users/lilingfengdev/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 514, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Radiation-pi", - "id": 96102795, - "node_id": "U_kgDOBbppiw", - "avatar_url": "https://avatars.githubusercontent.com/u/96102795?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Radiation-pi", - "html_url": "https://github.com/Radiation-pi", - "followers_url": "https://api.github.com/users/Radiation-pi/followers", - "following_url": "https://api.github.com/users/Radiation-pi/following{/other_user}", - "gists_url": "https://api.github.com/users/Radiation-pi/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Radiation-pi/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Radiation-pi/subscriptions", - "organizations_url": "https://api.github.com/users/Radiation-pi/orgs", - "repos_url": "https://api.github.com/users/Radiation-pi/repos", - "events_url": "https://api.github.com/users/Radiation-pi/events{/privacy}", - "received_events_url": "https://api.github.com/users/Radiation-pi/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 214, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "gyc123456-1", - "id": 69791212, - "node_id": "MDQ6VXNlcjY5NzkxMjEy", - "avatar_url": "https://avatars.githubusercontent.com/u/69791212?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/gyc123456-1", - "html_url": "https://github.com/gyc123456-1", - "followers_url": "https://api.github.com/users/gyc123456-1/followers", - "following_url": "https://api.github.com/users/gyc123456-1/following{/other_user}", - "gists_url": "https://api.github.com/users/gyc123456-1/gists{/gist_id}", - "starred_url": "https://api.github.com/users/gyc123456-1/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/gyc123456-1/subscriptions", - "organizations_url": "https://api.github.com/users/gyc123456-1/orgs", - "repos_url": "https://api.github.com/users/gyc123456-1/repos", - "events_url": "https://api.github.com/users/gyc123456-1/events{/privacy}", - "received_events_url": "https://api.github.com/users/gyc123456-1/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 97, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Lythrilla", - "id": 61087334, - "node_id": "MDQ6VXNlcjYxMDg3MzM0", - "avatar_url": "https://avatars.githubusercontent.com/u/61087334?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Lythrilla", - "html_url": "https://github.com/Lythrilla", - "followers_url": "https://api.github.com/users/Lythrilla/followers", - "following_url": "https://api.github.com/users/Lythrilla/following{/other_user}", - "gists_url": "https://api.github.com/users/Lythrilla/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Lythrilla/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Lythrilla/subscriptions", - "organizations_url": "https://api.github.com/users/Lythrilla/orgs", - "repos_url": "https://api.github.com/users/Lythrilla/repos", - "events_url": "https://api.github.com/users/Lythrilla/events{/privacy}", - "received_events_url": "https://api.github.com/users/Lythrilla/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 83, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "minimouse0", - "id": 116894415, - "node_id": "U_kgDOBveqzw", - "avatar_url": "https://avatars.githubusercontent.com/u/116894415?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/minimouse0", - "html_url": "https://github.com/minimouse0", - "followers_url": "https://api.github.com/users/minimouse0/followers", - "following_url": "https://api.github.com/users/minimouse0/following{/other_user}", - "gists_url": "https://api.github.com/users/minimouse0/gists{/gist_id}", - "starred_url": "https://api.github.com/users/minimouse0/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/minimouse0/subscriptions", - "organizations_url": "https://api.github.com/users/minimouse0/orgs", - "repos_url": "https://api.github.com/users/minimouse0/repos", - "events_url": "https://api.github.com/users/minimouse0/events{/privacy}", - "received_events_url": "https://api.github.com/users/minimouse0/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 81, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "ZoruaFox", - "id": 96456728, - "node_id": "U_kgDOBb_QGA", - "avatar_url": "https://avatars.githubusercontent.com/u/96456728?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/ZoruaFox", - "html_url": "https://github.com/ZoruaFox", - "followers_url": "https://api.github.com/users/ZoruaFox/followers", - "following_url": "https://api.github.com/users/ZoruaFox/following{/other_user}", - "gists_url": "https://api.github.com/users/ZoruaFox/gists{/gist_id}", - "starred_url": "https://api.github.com/users/ZoruaFox/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/ZoruaFox/subscriptions", - "organizations_url": "https://api.github.com/users/ZoruaFox/orgs", - "repos_url": "https://api.github.com/users/ZoruaFox/repos", - "events_url": "https://api.github.com/users/ZoruaFox/events{/privacy}", - "received_events_url": "https://api.github.com/users/ZoruaFox/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 57, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "HaHaWTH", - "id": 102713261, - "node_id": "U_kgDOBh9HrQ", - "avatar_url": "https://avatars.githubusercontent.com/u/102713261?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/HaHaWTH", - "html_url": "https://github.com/HaHaWTH", - "followers_url": "https://api.github.com/users/HaHaWTH/followers", - "following_url": "https://api.github.com/users/HaHaWTH/following{/other_user}", - "gists_url": "https://api.github.com/users/HaHaWTH/gists{/gist_id}", - "starred_url": "https://api.github.com/users/HaHaWTH/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/HaHaWTH/subscriptions", - "organizations_url": "https://api.github.com/users/HaHaWTH/orgs", - "repos_url": "https://api.github.com/users/HaHaWTH/repos", - "events_url": "https://api.github.com/users/HaHaWTH/events{/privacy}", - "received_events_url": "https://api.github.com/users/HaHaWTH/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 46, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "liangcha385", - "id": 108937242, - "node_id": "U_kgDOBn5AGg", - "avatar_url": "https://avatars.githubusercontent.com/u/108937242?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/liangcha385", - "html_url": "https://github.com/liangcha385", - "followers_url": "https://api.github.com/users/liangcha385/followers", - "following_url": "https://api.github.com/users/liangcha385/following{/other_user}", - "gists_url": "https://api.github.com/users/liangcha385/gists{/gist_id}", - "starred_url": "https://api.github.com/users/liangcha385/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/liangcha385/subscriptions", - "organizations_url": "https://api.github.com/users/liangcha385/orgs", - "repos_url": "https://api.github.com/users/liangcha385/repos", - "events_url": "https://api.github.com/users/liangcha385/events{/privacy}", - "received_events_url": "https://api.github.com/users/liangcha385/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 42, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Lafcadia", - "id": 147896059, - "node_id": "U_kgDOCNC2-w", - "avatar_url": "https://avatars.githubusercontent.com/u/147896059?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Lafcadia", - "html_url": "https://github.com/Lafcadia", - "followers_url": "https://api.github.com/users/Lafcadia/followers", - "following_url": "https://api.github.com/users/Lafcadia/following{/other_user}", - "gists_url": "https://api.github.com/users/Lafcadia/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Lafcadia/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Lafcadia/subscriptions", - "organizations_url": "https://api.github.com/users/Lafcadia/orgs", - "repos_url": "https://api.github.com/users/Lafcadia/repos", - "events_url": "https://api.github.com/users/Lafcadia/events{/privacy}", - "received_events_url": "https://api.github.com/users/Lafcadia/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 40, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "virgil698", - "id": 83110631, - "node_id": "MDQ6VXNlcjgzMTEwNjMx", - "avatar_url": "https://avatars.githubusercontent.com/u/83110631?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/virgil698", - "html_url": "https://github.com/virgil698", - "followers_url": "https://api.github.com/users/virgil698/followers", - "following_url": "https://api.github.com/users/virgil698/following{/other_user}", - "gists_url": "https://api.github.com/users/virgil698/gists{/gist_id}", - "starred_url": "https://api.github.com/users/virgil698/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/virgil698/subscriptions", - "organizations_url": "https://api.github.com/users/virgil698/orgs", - "repos_url": "https://api.github.com/users/virgil698/repos", - "events_url": "https://api.github.com/users/virgil698/events{/privacy}", - "received_events_url": "https://api.github.com/users/virgil698/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 39, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "HanSiqi2008", - "id": 136245260, - "node_id": "U_kgDOCB7wDA", - "avatar_url": "https://avatars.githubusercontent.com/u/136245260?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/HanSiqi2008", - "html_url": "https://github.com/HanSiqi2008", - "followers_url": "https://api.github.com/users/HanSiqi2008/followers", - "following_url": "https://api.github.com/users/HanSiqi2008/following{/other_user}", - "gists_url": "https://api.github.com/users/HanSiqi2008/gists{/gist_id}", - "starred_url": "https://api.github.com/users/HanSiqi2008/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/HanSiqi2008/subscriptions", - "organizations_url": "https://api.github.com/users/HanSiqi2008/orgs", - "repos_url": "https://api.github.com/users/HanSiqi2008/repos", - "events_url": "https://api.github.com/users/HanSiqi2008/events{/privacy}", - "received_events_url": "https://api.github.com/users/HanSiqi2008/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 37, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Yaosanqi137", - "id": 99163721, - "node_id": "U_kgDOBekeSQ", - "avatar_url": "https://avatars.githubusercontent.com/u/99163721?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Yaosanqi137", - "html_url": "https://github.com/Yaosanqi137", - "followers_url": "https://api.github.com/users/Yaosanqi137/followers", - "following_url": "https://api.github.com/users/Yaosanqi137/following{/other_user}", - "gists_url": "https://api.github.com/users/Yaosanqi137/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Yaosanqi137/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Yaosanqi137/subscriptions", - "organizations_url": "https://api.github.com/users/Yaosanqi137/orgs", - "repos_url": "https://api.github.com/users/Yaosanqi137/repos", - "events_url": "https://api.github.com/users/Yaosanqi137/events{/privacy}", - "received_events_url": "https://api.github.com/users/Yaosanqi137/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 36, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "lRENyaaa", - "id": 92320175, - "node_id": "U_kgDOBYCxrw", - "avatar_url": "https://avatars.githubusercontent.com/u/92320175?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/lRENyaaa", - "html_url": "https://github.com/lRENyaaa", - "followers_url": "https://api.github.com/users/lRENyaaa/followers", - "following_url": "https://api.github.com/users/lRENyaaa/following{/other_user}", - "gists_url": "https://api.github.com/users/lRENyaaa/gists{/gist_id}", - "starred_url": "https://api.github.com/users/lRENyaaa/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/lRENyaaa/subscriptions", - "organizations_url": "https://api.github.com/users/lRENyaaa/orgs", - "repos_url": "https://api.github.com/users/lRENyaaa/repos", - "events_url": "https://api.github.com/users/lRENyaaa/events{/privacy}", - "received_events_url": "https://api.github.com/users/lRENyaaa/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 20, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "TATyKeFei", - "id": 125815900, - "node_id": "U_kgDOB3_MXA", - "avatar_url": "https://avatars.githubusercontent.com/u/125815900?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/TATyKeFei", - "html_url": "https://github.com/TATyKeFei", - "followers_url": "https://api.github.com/users/TATyKeFei/followers", - "following_url": "https://api.github.com/users/TATyKeFei/following{/other_user}", - "gists_url": "https://api.github.com/users/TATyKeFei/gists{/gist_id}", - "starred_url": "https://api.github.com/users/TATyKeFei/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/TATyKeFei/subscriptions", - "organizations_url": "https://api.github.com/users/TATyKeFei/orgs", - "repos_url": "https://api.github.com/users/TATyKeFei/repos", - "events_url": "https://api.github.com/users/TATyKeFei/events{/privacy}", - "received_events_url": "https://api.github.com/users/TATyKeFei/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 20, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "mcdogserver", - "id": 146924973, - "node_id": "U_kgDOCMHlrQ", - "avatar_url": "https://avatars.githubusercontent.com/u/146924973?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/mcdogserver", - "html_url": "https://github.com/mcdogserver", - "followers_url": "https://api.github.com/users/mcdogserver/followers", - "following_url": "https://api.github.com/users/mcdogserver/following{/other_user}", - "gists_url": "https://api.github.com/users/mcdogserver/gists{/gist_id}", - "starred_url": "https://api.github.com/users/mcdogserver/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/mcdogserver/subscriptions", - "organizations_url": "https://api.github.com/users/mcdogserver/orgs", - "repos_url": "https://api.github.com/users/mcdogserver/repos", - "events_url": "https://api.github.com/users/mcdogserver/events{/privacy}", - "received_events_url": "https://api.github.com/users/mcdogserver/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 20, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "serverbread-DEV", - "id": 176056410, - "node_id": "U_kgDOCn5oWg", - "avatar_url": "https://avatars.githubusercontent.com/u/176056410?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/serverbread-DEV", - "html_url": "https://github.com/serverbread-DEV", - "followers_url": "https://api.github.com/users/serverbread-DEV/followers", - "following_url": "https://api.github.com/users/serverbread-DEV/following{/other_user}", - "gists_url": "https://api.github.com/users/serverbread-DEV/gists{/gist_id}", - "starred_url": "https://api.github.com/users/serverbread-DEV/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/serverbread-DEV/subscriptions", - "organizations_url": "https://api.github.com/users/serverbread-DEV/orgs", - "repos_url": "https://api.github.com/users/serverbread-DEV/repos", - "events_url": "https://api.github.com/users/serverbread-DEV/events{/privacy}", - "received_events_url": "https://api.github.com/users/serverbread-DEV/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 16, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "FallenCrystal", - "id": 71176602, - "node_id": "MDQ6VXNlcjcxMTc2NjAy", - "avatar_url": "https://avatars.githubusercontent.com/u/71176602?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/FallenCrystal", - "html_url": "https://github.com/FallenCrystal", - "followers_url": "https://api.github.com/users/FallenCrystal/followers", - "following_url": "https://api.github.com/users/FallenCrystal/following{/other_user}", - "gists_url": "https://api.github.com/users/FallenCrystal/gists{/gist_id}", - "starred_url": "https://api.github.com/users/FallenCrystal/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/FallenCrystal/subscriptions", - "organizations_url": "https://api.github.com/users/FallenCrystal/orgs", - "repos_url": "https://api.github.com/users/FallenCrystal/repos", - "events_url": "https://api.github.com/users/FallenCrystal/events{/privacy}", - "received_events_url": "https://api.github.com/users/FallenCrystal/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 14, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "MSWorkerl", - "id": 107293677, - "node_id": "U_kgDOBmUr7Q", - "avatar_url": "https://avatars.githubusercontent.com/u/107293677?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/MSWorkerl", - "html_url": "https://github.com/MSWorkerl", - "followers_url": "https://api.github.com/users/MSWorkerl/followers", - "following_url": "https://api.github.com/users/MSWorkerl/following{/other_user}", - "gists_url": "https://api.github.com/users/MSWorkerl/gists{/gist_id}", - "starred_url": "https://api.github.com/users/MSWorkerl/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/MSWorkerl/subscriptions", - "organizations_url": "https://api.github.com/users/MSWorkerl/orgs", - "repos_url": "https://api.github.com/users/MSWorkerl/repos", - "events_url": "https://api.github.com/users/MSWorkerl/events{/privacy}", - "received_events_url": "https://api.github.com/users/MSWorkerl/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 14, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "jlxnb", - "id": 97275132, - "node_id": "U_kgDOBcxM_A", - "avatar_url": "https://avatars.githubusercontent.com/u/97275132?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jlxnb", - "html_url": "https://github.com/jlxnb", - "followers_url": "https://api.github.com/users/jlxnb/followers", - "following_url": "https://api.github.com/users/jlxnb/following{/other_user}", - "gists_url": "https://api.github.com/users/jlxnb/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jlxnb/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jlxnb/subscriptions", - "organizations_url": "https://api.github.com/users/jlxnb/orgs", - "repos_url": "https://api.github.com/users/jlxnb/repos", - "events_url": "https://api.github.com/users/jlxnb/events{/privacy}", - "received_events_url": "https://api.github.com/users/jlxnb/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 10, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "MengHanLOVE1027", - "id": 99132833, - "node_id": "U_kgDOBeiloQ", - "avatar_url": "https://avatars.githubusercontent.com/u/99132833?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/MengHanLOVE1027", - "html_url": "https://github.com/MengHanLOVE1027", - "followers_url": "https://api.github.com/users/MengHanLOVE1027/followers", - "following_url": "https://api.github.com/users/MengHanLOVE1027/following{/other_user}", - "gists_url": "https://api.github.com/users/MengHanLOVE1027/gists{/gist_id}", - "starred_url": "https://api.github.com/users/MengHanLOVE1027/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/MengHanLOVE1027/subscriptions", - "organizations_url": "https://api.github.com/users/MengHanLOVE1027/orgs", - "repos_url": "https://api.github.com/users/MengHanLOVE1027/repos", - "events_url": "https://api.github.com/users/MengHanLOVE1027/events{/privacy}", - "received_events_url": "https://api.github.com/users/MengHanLOVE1027/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 10, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "ColdeZhang", - "id": 29792376, - "node_id": "MDQ6VXNlcjI5NzkyMzc2", - "avatar_url": "https://avatars.githubusercontent.com/u/29792376?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/ColdeZhang", - "html_url": "https://github.com/ColdeZhang", - "followers_url": "https://api.github.com/users/ColdeZhang/followers", - "following_url": "https://api.github.com/users/ColdeZhang/following{/other_user}", - "gists_url": "https://api.github.com/users/ColdeZhang/gists{/gist_id}", - "starred_url": "https://api.github.com/users/ColdeZhang/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/ColdeZhang/subscriptions", - "organizations_url": "https://api.github.com/users/ColdeZhang/orgs", - "repos_url": "https://api.github.com/users/ColdeZhang/repos", - "events_url": "https://api.github.com/users/ColdeZhang/events{/privacy}", - "received_events_url": "https://api.github.com/users/ColdeZhang/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 10, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "CkaDebug", - "id": 141492699, - "node_id": "U_kgDOCG8B2w", - "avatar_url": "https://avatars.githubusercontent.com/u/141492699?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/CkaDebug", - "html_url": "https://github.com/CkaDebug", - "followers_url": "https://api.github.com/users/CkaDebug/followers", - "following_url": "https://api.github.com/users/CkaDebug/following{/other_user}", - "gists_url": "https://api.github.com/users/CkaDebug/gists{/gist_id}", - "starred_url": "https://api.github.com/users/CkaDebug/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/CkaDebug/subscriptions", - "organizations_url": "https://api.github.com/users/CkaDebug/orgs", - "repos_url": "https://api.github.com/users/CkaDebug/repos", - "events_url": "https://api.github.com/users/CkaDebug/events{/privacy}", - "received_events_url": "https://api.github.com/users/CkaDebug/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 8, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "SeaOrangejuice", - "id": 116551329, - "node_id": "U_kgDOBvJuoQ", - "avatar_url": "https://avatars.githubusercontent.com/u/116551329?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/SeaOrangejuice", - "html_url": "https://github.com/SeaOrangejuice", - "followers_url": "https://api.github.com/users/SeaOrangejuice/followers", - "following_url": "https://api.github.com/users/SeaOrangejuice/following{/other_user}", - "gists_url": "https://api.github.com/users/SeaOrangejuice/gists{/gist_id}", - "starred_url": "https://api.github.com/users/SeaOrangejuice/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/SeaOrangejuice/subscriptions", - "organizations_url": "https://api.github.com/users/SeaOrangejuice/orgs", - "repos_url": "https://api.github.com/users/SeaOrangejuice/repos", - "events_url": "https://api.github.com/users/SeaOrangejuice/events{/privacy}", - "received_events_url": "https://api.github.com/users/SeaOrangejuice/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 8, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "pingguomc", - "id": 141195321, - "node_id": "U_kgDOCGp4OQ", - "avatar_url": "https://avatars.githubusercontent.com/u/141195321?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/pingguomc", - "html_url": "https://github.com/pingguomc", - "followers_url": "https://api.github.com/users/pingguomc/followers", - "following_url": "https://api.github.com/users/pingguomc/following{/other_user}", - "gists_url": "https://api.github.com/users/pingguomc/gists{/gist_id}", - "starred_url": "https://api.github.com/users/pingguomc/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/pingguomc/subscriptions", - "organizations_url": "https://api.github.com/users/pingguomc/orgs", - "repos_url": "https://api.github.com/users/pingguomc/repos", - "events_url": "https://api.github.com/users/pingguomc/events{/privacy}", - "received_events_url": "https://api.github.com/users/pingguomc/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 8, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "TheFloodDragon", - "id": 75253383, - "node_id": "MDQ6VXNlcjc1MjUzMzgz", - "avatar_url": "https://avatars.githubusercontent.com/u/75253383?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/TheFloodDragon", - "html_url": "https://github.com/TheFloodDragon", - "followers_url": "https://api.github.com/users/TheFloodDragon/followers", - "following_url": "https://api.github.com/users/TheFloodDragon/following{/other_user}", - "gists_url": "https://api.github.com/users/TheFloodDragon/gists{/gist_id}", - "starred_url": "https://api.github.com/users/TheFloodDragon/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/TheFloodDragon/subscriptions", - "organizations_url": "https://api.github.com/users/TheFloodDragon/orgs", - "repos_url": "https://api.github.com/users/TheFloodDragon/repos", - "events_url": "https://api.github.com/users/TheFloodDragon/events{/privacy}", - "received_events_url": "https://api.github.com/users/TheFloodDragon/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 6, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "cygbs", - "id": 178620098, - "node_id": "U_kgDOCqWGwg", - "avatar_url": "https://avatars.githubusercontent.com/u/178620098?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/cygbs", - "html_url": "https://github.com/cygbs", - "followers_url": "https://api.github.com/users/cygbs/followers", - "following_url": "https://api.github.com/users/cygbs/following{/other_user}", - "gists_url": "https://api.github.com/users/cygbs/gists{/gist_id}", - "starred_url": "https://api.github.com/users/cygbs/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/cygbs/subscriptions", - "organizations_url": "https://api.github.com/users/cygbs/orgs", - "repos_url": "https://api.github.com/users/cygbs/repos", - "events_url": "https://api.github.com/users/cygbs/events{/privacy}", - "received_events_url": "https://api.github.com/users/cygbs/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 5, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "tuanzisama", - "id": 33369729, - "node_id": "MDQ6VXNlcjMzMzY5NzI5", - "avatar_url": "https://avatars.githubusercontent.com/u/33369729?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/tuanzisama", - "html_url": "https://github.com/tuanzisama", - "followers_url": "https://api.github.com/users/tuanzisama/followers", - "following_url": "https://api.github.com/users/tuanzisama/following{/other_user}", - "gists_url": "https://api.github.com/users/tuanzisama/gists{/gist_id}", - "starred_url": "https://api.github.com/users/tuanzisama/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/tuanzisama/subscriptions", - "organizations_url": "https://api.github.com/users/tuanzisama/orgs", - "repos_url": "https://api.github.com/users/tuanzisama/repos", - "events_url": "https://api.github.com/users/tuanzisama/events{/privacy}", - "received_events_url": "https://api.github.com/users/tuanzisama/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 5, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "zzzyyylllty", - "id": 167876309, - "node_id": "U_kgDOCgGW1Q", - "avatar_url": "https://avatars.githubusercontent.com/u/167876309?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/zzzyyylllty", - "html_url": "https://github.com/zzzyyylllty", - "followers_url": "https://api.github.com/users/zzzyyylllty/followers", - "following_url": "https://api.github.com/users/zzzyyylllty/following{/other_user}", - "gists_url": "https://api.github.com/users/zzzyyylllty/gists{/gist_id}", - "starred_url": "https://api.github.com/users/zzzyyylllty/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/zzzyyylllty/subscriptions", - "organizations_url": "https://api.github.com/users/zzzyyylllty/orgs", - "repos_url": "https://api.github.com/users/zzzyyylllty/repos", - "events_url": "https://api.github.com/users/zzzyyylllty/events{/privacy}", - "received_events_url": "https://api.github.com/users/zzzyyylllty/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 5, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "0XPYEX0", - "id": 50171612, - "node_id": "MDQ6VXNlcjUwMTcxNjEy", - "avatar_url": "https://avatars.githubusercontent.com/u/50171612?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/0XPYEX0", - "html_url": "https://github.com/0XPYEX0", - "followers_url": "https://api.github.com/users/0XPYEX0/followers", - "following_url": "https://api.github.com/users/0XPYEX0/following{/other_user}", - "gists_url": "https://api.github.com/users/0XPYEX0/gists{/gist_id}", - "starred_url": "https://api.github.com/users/0XPYEX0/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/0XPYEX0/subscriptions", - "organizations_url": "https://api.github.com/users/0XPYEX0/orgs", - "repos_url": "https://api.github.com/users/0XPYEX0/repos", - "events_url": "https://api.github.com/users/0XPYEX0/events{/privacy}", - "received_events_url": "https://api.github.com/users/0XPYEX0/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 5, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "MySoulcutting", - "id": 72398605, - "node_id": "MDQ6VXNlcjcyMzk4NjA1", - "avatar_url": "https://avatars.githubusercontent.com/u/72398605?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/MySoulcutting", - "html_url": "https://github.com/MySoulcutting", - "followers_url": "https://api.github.com/users/MySoulcutting/followers", - "following_url": "https://api.github.com/users/MySoulcutting/following{/other_user}", - "gists_url": "https://api.github.com/users/MySoulcutting/gists{/gist_id}", - "starred_url": "https://api.github.com/users/MySoulcutting/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/MySoulcutting/subscriptions", - "organizations_url": "https://api.github.com/users/MySoulcutting/orgs", - "repos_url": "https://api.github.com/users/MySoulcutting/repos", - "events_url": "https://api.github.com/users/MySoulcutting/events{/privacy}", - "received_events_url": "https://api.github.com/users/MySoulcutting/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 5, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Dreeam-qwq", - "id": 61569423, - "node_id": "MDQ6VXNlcjYxNTY5NDIz", - "avatar_url": "https://avatars.githubusercontent.com/u/61569423?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Dreeam-qwq", - "html_url": "https://github.com/Dreeam-qwq", - "followers_url": "https://api.github.com/users/Dreeam-qwq/followers", - "following_url": "https://api.github.com/users/Dreeam-qwq/following{/other_user}", - "gists_url": "https://api.github.com/users/Dreeam-qwq/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Dreeam-qwq/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Dreeam-qwq/subscriptions", - "organizations_url": "https://api.github.com/users/Dreeam-qwq/orgs", - "repos_url": "https://api.github.com/users/Dreeam-qwq/repos", - "events_url": "https://api.github.com/users/Dreeam-qwq/events{/privacy}", - "received_events_url": "https://api.github.com/users/Dreeam-qwq/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 4, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "MoLiyi-WD", - "id": 166040564, - "node_id": "U_kgDOCeWT9A", - "avatar_url": "https://avatars.githubusercontent.com/u/166040564?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/MoLiyi-WD", - "html_url": "https://github.com/MoLiyi-WD", - "followers_url": "https://api.github.com/users/MoLiyi-WD/followers", - "following_url": "https://api.github.com/users/MoLiyi-WD/following{/other_user}", - "gists_url": "https://api.github.com/users/MoLiyi-WD/gists{/gist_id}", - "starred_url": "https://api.github.com/users/MoLiyi-WD/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/MoLiyi-WD/subscriptions", - "organizations_url": "https://api.github.com/users/MoLiyi-WD/orgs", - "repos_url": "https://api.github.com/users/MoLiyi-WD/repos", - "events_url": "https://api.github.com/users/MoLiyi-WD/events{/privacy}", - "received_events_url": "https://api.github.com/users/MoLiyi-WD/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 4, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "jhqwqmc", - "id": 113768629, - "node_id": "U_kgDOBsf4tQ", - "avatar_url": "https://avatars.githubusercontent.com/u/113768629?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/jhqwqmc", - "html_url": "https://github.com/jhqwqmc", - "followers_url": "https://api.github.com/users/jhqwqmc/followers", - "following_url": "https://api.github.com/users/jhqwqmc/following{/other_user}", - "gists_url": "https://api.github.com/users/jhqwqmc/gists{/gist_id}", - "starred_url": "https://api.github.com/users/jhqwqmc/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/jhqwqmc/subscriptions", - "organizations_url": "https://api.github.com/users/jhqwqmc/orgs", - "repos_url": "https://api.github.com/users/jhqwqmc/repos", - "events_url": "https://api.github.com/users/jhqwqmc/events{/privacy}", - "received_events_url": "https://api.github.com/users/jhqwqmc/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 4, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Coquettishpig", - "id": 107100449, - "node_id": "U_kgDOBmI5IQ", - "avatar_url": "https://avatars.githubusercontent.com/u/107100449?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Coquettishpig", - "html_url": "https://github.com/Coquettishpig", - "followers_url": "https://api.github.com/users/Coquettishpig/followers", - "following_url": "https://api.github.com/users/Coquettishpig/following{/other_user}", - "gists_url": "https://api.github.com/users/Coquettishpig/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Coquettishpig/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Coquettishpig/subscriptions", - "organizations_url": "https://api.github.com/users/Coquettishpig/orgs", - "repos_url": "https://api.github.com/users/Coquettishpig/repos", - "events_url": "https://api.github.com/users/Coquettishpig/events{/privacy}", - "received_events_url": "https://api.github.com/users/Coquettishpig/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 4, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "MrXiaoM", - "id": 35788433, - "node_id": "MDQ6VXNlcjM1Nzg4NDMz", - "avatar_url": "https://avatars.githubusercontent.com/u/35788433?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/MrXiaoM", - "html_url": "https://github.com/MrXiaoM", - "followers_url": "https://api.github.com/users/MrXiaoM/followers", - "following_url": "https://api.github.com/users/MrXiaoM/following{/other_user}", - "gists_url": "https://api.github.com/users/MrXiaoM/gists{/gist_id}", - "starred_url": "https://api.github.com/users/MrXiaoM/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/MrXiaoM/subscriptions", - "organizations_url": "https://api.github.com/users/MrXiaoM/orgs", - "repos_url": "https://api.github.com/users/MrXiaoM/repos", - "events_url": "https://api.github.com/users/MrXiaoM/events{/privacy}", - "received_events_url": "https://api.github.com/users/MrXiaoM/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 3, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "zzh4141", - "id": 173983090, - "node_id": "U_kgDOCl7Fcg", - "avatar_url": "https://avatars.githubusercontent.com/u/173983090?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/zzh4141", - "html_url": "https://github.com/zzh4141", - "followers_url": "https://api.github.com/users/zzh4141/followers", - "following_url": "https://api.github.com/users/zzh4141/following{/other_user}", - "gists_url": "https://api.github.com/users/zzh4141/gists{/gist_id}", - "starred_url": "https://api.github.com/users/zzh4141/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/zzh4141/subscriptions", - "organizations_url": "https://api.github.com/users/zzh4141/orgs", - "repos_url": "https://api.github.com/users/zzh4141/repos", - "events_url": "https://api.github.com/users/zzh4141/events{/privacy}", - "received_events_url": "https://api.github.com/users/zzh4141/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 3, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "cqw-acq", - "id": 133117051, - "node_id": "U_kgDOB-80ew", - "avatar_url": "https://avatars.githubusercontent.com/u/133117051?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/cqw-acq", - "html_url": "https://github.com/cqw-acq", - "followers_url": "https://api.github.com/users/cqw-acq/followers", - "following_url": "https://api.github.com/users/cqw-acq/following{/other_user}", - "gists_url": "https://api.github.com/users/cqw-acq/gists{/gist_id}", - "starred_url": "https://api.github.com/users/cqw-acq/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/cqw-acq/subscriptions", - "organizations_url": "https://api.github.com/users/cqw-acq/orgs", - "repos_url": "https://api.github.com/users/cqw-acq/repos", - "events_url": "https://api.github.com/users/cqw-acq/events{/privacy}", - "received_events_url": "https://api.github.com/users/cqw-acq/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 3, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Null-K", - "id": 42692963, - "node_id": "MDQ6VXNlcjQyNjkyOTYz", - "avatar_url": "https://avatars.githubusercontent.com/u/42692963?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Null-K", - "html_url": "https://github.com/Null-K", - "followers_url": "https://api.github.com/users/Null-K/followers", - "following_url": "https://api.github.com/users/Null-K/following{/other_user}", - "gists_url": "https://api.github.com/users/Null-K/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Null-K/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Null-K/subscriptions", - "organizations_url": "https://api.github.com/users/Null-K/orgs", - "repos_url": "https://api.github.com/users/Null-K/repos", - "events_url": "https://api.github.com/users/Null-K/events{/privacy}", - "received_events_url": "https://api.github.com/users/Null-K/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 3, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "MF-Dust", - "id": 128943330, - "node_id": "U_kgDOB6-E4g", - "avatar_url": "https://avatars.githubusercontent.com/u/128943330?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/MF-Dust", - "html_url": "https://github.com/MF-Dust", - "followers_url": "https://api.github.com/users/MF-Dust/followers", - "following_url": "https://api.github.com/users/MF-Dust/following{/other_user}", - "gists_url": "https://api.github.com/users/MF-Dust/gists{/gist_id}", - "starred_url": "https://api.github.com/users/MF-Dust/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/MF-Dust/subscriptions", - "organizations_url": "https://api.github.com/users/MF-Dust/orgs", - "repos_url": "https://api.github.com/users/MF-Dust/repos", - "events_url": "https://api.github.com/users/MF-Dust/events{/privacy}", - "received_events_url": "https://api.github.com/users/MF-Dust/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 3, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "LittleChest", - "id": 81231195, - "node_id": "MDQ6VXNlcjgxMjMxMTk1", - "avatar_url": "https://avatars.githubusercontent.com/u/81231195?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/LittleChest", - "html_url": "https://github.com/LittleChest", - "followers_url": "https://api.github.com/users/LittleChest/followers", - "following_url": "https://api.github.com/users/LittleChest/following{/other_user}", - "gists_url": "https://api.github.com/users/LittleChest/gists{/gist_id}", - "starred_url": "https://api.github.com/users/LittleChest/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/LittleChest/subscriptions", - "organizations_url": "https://api.github.com/users/LittleChest/orgs", - "repos_url": "https://api.github.com/users/LittleChest/repos", - "events_url": "https://api.github.com/users/LittleChest/events{/privacy}", - "received_events_url": "https://api.github.com/users/LittleChest/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 3, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "yeying-xingchen", - "id": 149694986, - "node_id": "U_kgDOCOwqCg", - "avatar_url": "https://avatars.githubusercontent.com/u/149694986?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/yeying-xingchen", - "html_url": "https://github.com/yeying-xingchen", - "followers_url": "https://api.github.com/users/yeying-xingchen/followers", - "following_url": "https://api.github.com/users/yeying-xingchen/following{/other_user}", - "gists_url": "https://api.github.com/users/yeying-xingchen/gists{/gist_id}", - "starred_url": "https://api.github.com/users/yeying-xingchen/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/yeying-xingchen/subscriptions", - "organizations_url": "https://api.github.com/users/yeying-xingchen/orgs", - "repos_url": "https://api.github.com/users/yeying-xingchen/repos", - "events_url": "https://api.github.com/users/yeying-xingchen/events{/privacy}", - "received_events_url": "https://api.github.com/users/yeying-xingchen/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "aoc46hiabck4678wofh", - "id": 79011008, - "node_id": "MDQ6VXNlcjc5MDExMDA4", - "avatar_url": "https://avatars.githubusercontent.com/u/79011008?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/aoc46hiabck4678wofh", - "html_url": "https://github.com/aoc46hiabck4678wofh", - "followers_url": "https://api.github.com/users/aoc46hiabck4678wofh/followers", - "following_url": "https://api.github.com/users/aoc46hiabck4678wofh/following{/other_user}", - "gists_url": "https://api.github.com/users/aoc46hiabck4678wofh/gists{/gist_id}", - "starred_url": "https://api.github.com/users/aoc46hiabck4678wofh/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/aoc46hiabck4678wofh/subscriptions", - "organizations_url": "https://api.github.com/users/aoc46hiabck4678wofh/orgs", - "repos_url": "https://api.github.com/users/aoc46hiabck4678wofh/repos", - "events_url": "https://api.github.com/users/aoc46hiabck4678wofh/events{/privacy}", - "received_events_url": "https://api.github.com/users/aoc46hiabck4678wofh/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Maxsh001", - "id": 121470455, - "node_id": "U_kgDOBz199w", - "avatar_url": "https://avatars.githubusercontent.com/u/121470455?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Maxsh001", - "html_url": "https://github.com/Maxsh001", - "followers_url": "https://api.github.com/users/Maxsh001/followers", - "following_url": "https://api.github.com/users/Maxsh001/following{/other_user}", - "gists_url": "https://api.github.com/users/Maxsh001/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Maxsh001/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Maxsh001/subscriptions", - "organizations_url": "https://api.github.com/users/Maxsh001/orgs", - "repos_url": "https://api.github.com/users/Maxsh001/repos", - "events_url": "https://api.github.com/users/Maxsh001/events{/privacy}", - "received_events_url": "https://api.github.com/users/Maxsh001/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "tomofsun", - "id": 38775139, - "node_id": "MDQ6VXNlcjM4Nzc1MTM5", - "avatar_url": "https://avatars.githubusercontent.com/u/38775139?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/tomofsun", - "html_url": "https://github.com/tomofsun", - "followers_url": "https://api.github.com/users/tomofsun/followers", - "following_url": "https://api.github.com/users/tomofsun/following{/other_user}", - "gists_url": "https://api.github.com/users/tomofsun/gists{/gist_id}", - "starred_url": "https://api.github.com/users/tomofsun/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/tomofsun/subscriptions", - "organizations_url": "https://api.github.com/users/tomofsun/orgs", - "repos_url": "https://api.github.com/users/tomofsun/repos", - "events_url": "https://api.github.com/users/tomofsun/events{/privacy}", - "received_events_url": "https://api.github.com/users/tomofsun/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "shenbimicro233", - "id": 116066110, - "node_id": "U_kgDOBusHPg", - "avatar_url": "https://avatars.githubusercontent.com/u/116066110?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/shenbimicro233", - "html_url": "https://github.com/shenbimicro233", - "followers_url": "https://api.github.com/users/shenbimicro233/followers", - "following_url": "https://api.github.com/users/shenbimicro233/following{/other_user}", - "gists_url": "https://api.github.com/users/shenbimicro233/gists{/gist_id}", - "starred_url": "https://api.github.com/users/shenbimicro233/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/shenbimicro233/subscriptions", - "organizations_url": "https://api.github.com/users/shenbimicro233/orgs", - "repos_url": "https://api.github.com/users/shenbimicro233/repos", - "events_url": "https://api.github.com/users/shenbimicro233/events{/privacy}", - "received_events_url": "https://api.github.com/users/shenbimicro233/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "kukemc", - "id": 95417077, - "node_id": "U_kgDOBa_y9Q", - "avatar_url": "https://avatars.githubusercontent.com/u/95417077?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/kukemc", - "html_url": "https://github.com/kukemc", - "followers_url": "https://api.github.com/users/kukemc/followers", - "following_url": "https://api.github.com/users/kukemc/following{/other_user}", - "gists_url": "https://api.github.com/users/kukemc/gists{/gist_id}", - "starred_url": "https://api.github.com/users/kukemc/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/kukemc/subscriptions", - "organizations_url": "https://api.github.com/users/kukemc/orgs", - "repos_url": "https://api.github.com/users/kukemc/repos", - "events_url": "https://api.github.com/users/kukemc/events{/privacy}", - "received_events_url": "https://api.github.com/users/kukemc/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "alazeprt", - "id": 92018941, - "node_id": "U_kgDOBXwY_Q", - "avatar_url": "https://avatars.githubusercontent.com/u/92018941?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/alazeprt", - "html_url": "https://github.com/alazeprt", - "followers_url": "https://api.github.com/users/alazeprt/followers", - "following_url": "https://api.github.com/users/alazeprt/following{/other_user}", - "gists_url": "https://api.github.com/users/alazeprt/gists{/gist_id}", - "starred_url": "https://api.github.com/users/alazeprt/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/alazeprt/subscriptions", - "organizations_url": "https://api.github.com/users/alazeprt/orgs", - "repos_url": "https://api.github.com/users/alazeprt/repos", - "events_url": "https://api.github.com/users/alazeprt/events{/privacy}", - "received_events_url": "https://api.github.com/users/alazeprt/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "YuanYuanOwO", - "id": 81153017, - "node_id": "MDQ6VXNlcjgxMTUzMDE3", - "avatar_url": "https://avatars.githubusercontent.com/u/81153017?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/YuanYuanOwO", - "html_url": "https://github.com/YuanYuanOwO", - "followers_url": "https://api.github.com/users/YuanYuanOwO/followers", - "following_url": "https://api.github.com/users/YuanYuanOwO/following{/other_user}", - "gists_url": "https://api.github.com/users/YuanYuanOwO/gists{/gist_id}", - "starred_url": "https://api.github.com/users/YuanYuanOwO/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/YuanYuanOwO/subscriptions", - "organizations_url": "https://api.github.com/users/YuanYuanOwO/orgs", - "repos_url": "https://api.github.com/users/YuanYuanOwO/repos", - "events_url": "https://api.github.com/users/YuanYuanOwO/events{/privacy}", - "received_events_url": "https://api.github.com/users/YuanYuanOwO/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "SnowCutieOwO", - "id": 89032291, - "node_id": "MDQ6VXNlcjg5MDMyMjkx", - "avatar_url": "https://avatars.githubusercontent.com/u/89032291?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/SnowCutieOwO", - "html_url": "https://github.com/SnowCutieOwO", - "followers_url": "https://api.github.com/users/SnowCutieOwO/followers", - "following_url": "https://api.github.com/users/SnowCutieOwO/following{/other_user}", - "gists_url": "https://api.github.com/users/SnowCutieOwO/gists{/gist_id}", - "starred_url": "https://api.github.com/users/SnowCutieOwO/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/SnowCutieOwO/subscriptions", - "organizations_url": "https://api.github.com/users/SnowCutieOwO/orgs", - "repos_url": "https://api.github.com/users/SnowCutieOwO/repos", - "events_url": "https://api.github.com/users/SnowCutieOwO/events{/privacy}", - "received_events_url": "https://api.github.com/users/SnowCutieOwO/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "superman32432432", - "id": 7228420, - "node_id": "MDQ6VXNlcjcyMjg0MjA=", - "avatar_url": "https://avatars.githubusercontent.com/u/7228420?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/superman32432432", - "html_url": "https://github.com/superman32432432", - "followers_url": "https://api.github.com/users/superman32432432/followers", - "following_url": "https://api.github.com/users/superman32432432/following{/other_user}", - "gists_url": "https://api.github.com/users/superman32432432/gists{/gist_id}", - "starred_url": "https://api.github.com/users/superman32432432/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/superman32432432/subscriptions", - "organizations_url": "https://api.github.com/users/superman32432432/orgs", - "repos_url": "https://api.github.com/users/superman32432432/repos", - "events_url": "https://api.github.com/users/superman32432432/events{/privacy}", - "received_events_url": "https://api.github.com/users/superman32432432/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "CaterMaoZi", - "id": 126097270, - "node_id": "U_kgDOB4QXdg", - "avatar_url": "https://avatars.githubusercontent.com/u/126097270?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/CaterMaoZi", - "html_url": "https://github.com/CaterMaoZi", - "followers_url": "https://api.github.com/users/CaterMaoZi/followers", - "following_url": "https://api.github.com/users/CaterMaoZi/following{/other_user}", - "gists_url": "https://api.github.com/users/CaterMaoZi/gists{/gist_id}", - "starred_url": "https://api.github.com/users/CaterMaoZi/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/CaterMaoZi/subscriptions", - "organizations_url": "https://api.github.com/users/CaterMaoZi/orgs", - "repos_url": "https://api.github.com/users/CaterMaoZi/repos", - "events_url": "https://api.github.com/users/CaterMaoZi/events{/privacy}", - "received_events_url": "https://api.github.com/users/CaterMaoZi/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 2, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Spring8618", - "id": 199462952, - "node_id": "U_kgDOC-OQKA", - "avatar_url": "https://avatars.githubusercontent.com/u/199462952?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Spring8618", - "html_url": "https://github.com/Spring8618", - "followers_url": "https://api.github.com/users/Spring8618/followers", - "following_url": "https://api.github.com/users/Spring8618/following{/other_user}", - "gists_url": "https://api.github.com/users/Spring8618/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Spring8618/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Spring8618/subscriptions", - "organizations_url": "https://api.github.com/users/Spring8618/orgs", - "repos_url": "https://api.github.com/users/Spring8618/repos", - "events_url": "https://api.github.com/users/Spring8618/events{/privacy}", - "received_events_url": "https://api.github.com/users/Spring8618/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "TalentsRC", - "id": 85682725, - "node_id": "MDQ6VXNlcjg1NjgyNzI1", - "avatar_url": "https://avatars.githubusercontent.com/u/85682725?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/TalentsRC", - "html_url": "https://github.com/TalentsRC", - "followers_url": "https://api.github.com/users/TalentsRC/followers", - "following_url": "https://api.github.com/users/TalentsRC/following{/other_user}", - "gists_url": "https://api.github.com/users/TalentsRC/gists{/gist_id}", - "starred_url": "https://api.github.com/users/TalentsRC/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/TalentsRC/subscriptions", - "organizations_url": "https://api.github.com/users/TalentsRC/orgs", - "repos_url": "https://api.github.com/users/TalentsRC/repos", - "events_url": "https://api.github.com/users/TalentsRC/events{/privacy}", - "received_events_url": "https://api.github.com/users/TalentsRC/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Tsingloong611", - "id": 78492333, - "node_id": "MDQ6VXNlcjc4NDkyMzMz", - "avatar_url": "https://avatars.githubusercontent.com/u/78492333?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Tsingloong611", - "html_url": "https://github.com/Tsingloong611", - "followers_url": "https://api.github.com/users/Tsingloong611/followers", - "following_url": "https://api.github.com/users/Tsingloong611/following{/other_user}", - "gists_url": "https://api.github.com/users/Tsingloong611/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Tsingloong611/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Tsingloong611/subscriptions", - "organizations_url": "https://api.github.com/users/Tsingloong611/orgs", - "repos_url": "https://api.github.com/users/Tsingloong611/repos", - "events_url": "https://api.github.com/users/Tsingloong611/events{/privacy}", - "received_events_url": "https://api.github.com/users/Tsingloong611/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "windy664", - "id": 81475218, - "node_id": "MDQ6VXNlcjgxNDc1MjE4", - "avatar_url": "https://avatars.githubusercontent.com/u/81475218?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/windy664", - "html_url": "https://github.com/windy664", - "followers_url": "https://api.github.com/users/windy664/followers", - "following_url": "https://api.github.com/users/windy664/following{/other_user}", - "gists_url": "https://api.github.com/users/windy664/gists{/gist_id}", - "starred_url": "https://api.github.com/users/windy664/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/windy664/subscriptions", - "organizations_url": "https://api.github.com/users/windy664/orgs", - "repos_url": "https://api.github.com/users/windy664/repos", - "events_url": "https://api.github.com/users/windy664/events{/privacy}", - "received_events_url": "https://api.github.com/users/windy664/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Rapid-carbon-neutralization", - "id": 193466634, - "node_id": "U_kgDOC4gRCg", - "avatar_url": "https://avatars.githubusercontent.com/u/193466634?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Rapid-carbon-neutralization", - "html_url": "https://github.com/Rapid-carbon-neutralization", - "followers_url": "https://api.github.com/users/Rapid-carbon-neutralization/followers", - "following_url": "https://api.github.com/users/Rapid-carbon-neutralization/following{/other_user}", - "gists_url": "https://api.github.com/users/Rapid-carbon-neutralization/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Rapid-carbon-neutralization/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Rapid-carbon-neutralization/subscriptions", - "organizations_url": "https://api.github.com/users/Rapid-carbon-neutralization/orgs", - "repos_url": "https://api.github.com/users/Rapid-carbon-neutralization/repos", - "events_url": "https://api.github.com/users/Rapid-carbon-neutralization/events{/privacy}", - "received_events_url": "https://api.github.com/users/Rapid-carbon-neutralization/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Ziphyrien", - "id": 111620796, - "node_id": "U_kgDOBqcyvA", - "avatar_url": "https://avatars.githubusercontent.com/u/111620796?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Ziphyrien", - "html_url": "https://github.com/Ziphyrien", - "followers_url": "https://api.github.com/users/Ziphyrien/followers", - "following_url": "https://api.github.com/users/Ziphyrien/following{/other_user}", - "gists_url": "https://api.github.com/users/Ziphyrien/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Ziphyrien/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Ziphyrien/subscriptions", - "organizations_url": "https://api.github.com/users/Ziphyrien/orgs", - "repos_url": "https://api.github.com/users/Ziphyrien/repos", - "events_url": "https://api.github.com/users/Ziphyrien/events{/privacy}", - "received_events_url": "https://api.github.com/users/Ziphyrien/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "heyhey123-git", - "id": 156066831, - "node_id": "U_kgDOCU1kDw", - "avatar_url": "https://avatars.githubusercontent.com/u/156066831?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/heyhey123-git", - "html_url": "https://github.com/heyhey123-git", - "followers_url": "https://api.github.com/users/heyhey123-git/followers", - "following_url": "https://api.github.com/users/heyhey123-git/following{/other_user}", - "gists_url": "https://api.github.com/users/heyhey123-git/gists{/gist_id}", - "starred_url": "https://api.github.com/users/heyhey123-git/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/heyhey123-git/subscriptions", - "organizations_url": "https://api.github.com/users/heyhey123-git/orgs", - "repos_url": "https://api.github.com/users/heyhey123-git/repos", - "events_url": "https://api.github.com/users/heyhey123-git/events{/privacy}", - "received_events_url": "https://api.github.com/users/heyhey123-git/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "starworkless", - "id": 166240872, - "node_id": "U_kgDOCeiiaA", - "avatar_url": "https://avatars.githubusercontent.com/u/166240872?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/starworkless", - "html_url": "https://github.com/starworkless", - "followers_url": "https://api.github.com/users/starworkless/followers", - "following_url": "https://api.github.com/users/starworkless/following{/other_user}", - "gists_url": "https://api.github.com/users/starworkless/gists{/gist_id}", - "starred_url": "https://api.github.com/users/starworkless/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/starworkless/subscriptions", - "organizations_url": "https://api.github.com/users/starworkless/orgs", - "repos_url": "https://api.github.com/users/starworkless/repos", - "events_url": "https://api.github.com/users/starworkless/events{/privacy}", - "received_events_url": "https://api.github.com/users/starworkless/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "xiaoka520", - "id": 82299267, - "node_id": "MDQ6VXNlcjgyMjk5MjY3", - "avatar_url": "https://avatars.githubusercontent.com/u/82299267?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/xiaoka520", - "html_url": "https://github.com/xiaoka520", - "followers_url": "https://api.github.com/users/xiaoka520/followers", - "following_url": "https://api.github.com/users/xiaoka520/following{/other_user}", - "gists_url": "https://api.github.com/users/xiaoka520/gists{/gist_id}", - "starred_url": "https://api.github.com/users/xiaoka520/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/xiaoka520/subscriptions", - "organizations_url": "https://api.github.com/users/xiaoka520/orgs", - "repos_url": "https://api.github.com/users/xiaoka520/repos", - "events_url": "https://api.github.com/users/xiaoka520/events{/privacy}", - "received_events_url": "https://api.github.com/users/xiaoka520/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "XingLingQAQ", - "id": 92240364, - "node_id": "U_kgDOBX957A", - "avatar_url": "https://avatars.githubusercontent.com/u/92240364?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/XingLingQAQ", - "html_url": "https://github.com/XingLingQAQ", - "followers_url": "https://api.github.com/users/XingLingQAQ/followers", - "following_url": "https://api.github.com/users/XingLingQAQ/following{/other_user}", - "gists_url": "https://api.github.com/users/XingLingQAQ/gists{/gist_id}", - "starred_url": "https://api.github.com/users/XingLingQAQ/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/XingLingQAQ/subscriptions", - "organizations_url": "https://api.github.com/users/XingLingQAQ/orgs", - "repos_url": "https://api.github.com/users/XingLingQAQ/repos", - "events_url": "https://api.github.com/users/XingLingQAQ/events{/privacy}", - "received_events_url": "https://api.github.com/users/XingLingQAQ/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "MSCMDD", - "id": 128666602, - "node_id": "U_kgDOB6tL6g", - "avatar_url": "https://avatars.githubusercontent.com/u/128666602?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/MSCMDD", - "html_url": "https://github.com/MSCMDD", - "followers_url": "https://api.github.com/users/MSCMDD/followers", - "following_url": "https://api.github.com/users/MSCMDD/following{/other_user}", - "gists_url": "https://api.github.com/users/MSCMDD/gists{/gist_id}", - "starred_url": "https://api.github.com/users/MSCMDD/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/MSCMDD/subscriptions", - "organizations_url": "https://api.github.com/users/MSCMDD/orgs", - "repos_url": "https://api.github.com/users/MSCMDD/repos", - "events_url": "https://api.github.com/users/MSCMDD/events{/privacy}", - "received_events_url": "https://api.github.com/users/MSCMDD/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "IPF-Sinon", - "id": 160340144, - "node_id": "U_kgDOCY6YsA", - "avatar_url": "https://avatars.githubusercontent.com/u/160340144?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/IPF-Sinon", - "html_url": "https://github.com/IPF-Sinon", - "followers_url": "https://api.github.com/users/IPF-Sinon/followers", - "following_url": "https://api.github.com/users/IPF-Sinon/following{/other_user}", - "gists_url": "https://api.github.com/users/IPF-Sinon/gists{/gist_id}", - "starred_url": "https://api.github.com/users/IPF-Sinon/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/IPF-Sinon/subscriptions", - "organizations_url": "https://api.github.com/users/IPF-Sinon/orgs", - "repos_url": "https://api.github.com/users/IPF-Sinon/repos", - "events_url": "https://api.github.com/users/IPF-Sinon/events{/privacy}", - "received_events_url": "https://api.github.com/users/IPF-Sinon/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "zkhssb", - "id": 66494674, - "node_id": "MDQ6VXNlcjY2NDk0Njc0", - "avatar_url": "https://avatars.githubusercontent.com/u/66494674?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/zkhssb", - "html_url": "https://github.com/zkhssb", - "followers_url": "https://api.github.com/users/zkhssb/followers", - "following_url": "https://api.github.com/users/zkhssb/following{/other_user}", - "gists_url": "https://api.github.com/users/zkhssb/gists{/gist_id}", - "starred_url": "https://api.github.com/users/zkhssb/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/zkhssb/subscriptions", - "organizations_url": "https://api.github.com/users/zkhssb/orgs", - "repos_url": "https://api.github.com/users/zkhssb/repos", - "events_url": "https://api.github.com/users/zkhssb/events{/privacy}", - "received_events_url": "https://api.github.com/users/zkhssb/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "NanamiMio", - "id": 7197139, - "node_id": "MDQ6VXNlcjcxOTcxMzk=", - "avatar_url": "https://avatars.githubusercontent.com/u/7197139?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/NanamiMio", - "html_url": "https://github.com/NanamiMio", - "followers_url": "https://api.github.com/users/NanamiMio/followers", - "following_url": "https://api.github.com/users/NanamiMio/following{/other_user}", - "gists_url": "https://api.github.com/users/NanamiMio/gists{/gist_id}", - "starred_url": "https://api.github.com/users/NanamiMio/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/NanamiMio/subscriptions", - "organizations_url": "https://api.github.com/users/NanamiMio/orgs", - "repos_url": "https://api.github.com/users/NanamiMio/repos", - "events_url": "https://api.github.com/users/NanamiMio/events{/privacy}", - "received_events_url": "https://api.github.com/users/NanamiMio/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "Huge-mistake", - "id": 137968615, - "node_id": "U_kgDOCDk75w", - "avatar_url": "https://avatars.githubusercontent.com/u/137968615?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/Huge-mistake", - "html_url": "https://github.com/Huge-mistake", - "followers_url": "https://api.github.com/users/Huge-mistake/followers", - "following_url": "https://api.github.com/users/Huge-mistake/following{/other_user}", - "gists_url": "https://api.github.com/users/Huge-mistake/gists{/gist_id}", - "starred_url": "https://api.github.com/users/Huge-mistake/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/Huge-mistake/subscriptions", - "organizations_url": "https://api.github.com/users/Huge-mistake/orgs", - "repos_url": "https://api.github.com/users/Huge-mistake/repos", - "events_url": "https://api.github.com/users/Huge-mistake/events{/privacy}", - "received_events_url": "https://api.github.com/users/Huge-mistake/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "k49ur4", - "id": 78563233, - "node_id": "MDQ6VXNlcjc4NTYzMjMz", - "avatar_url": "https://avatars.githubusercontent.com/u/78563233?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/k49ur4", - "html_url": "https://github.com/k49ur4", - "followers_url": "https://api.github.com/users/k49ur4/followers", - "following_url": "https://api.github.com/users/k49ur4/following{/other_user}", - "gists_url": "https://api.github.com/users/k49ur4/gists{/gist_id}", - "starred_url": "https://api.github.com/users/k49ur4/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/k49ur4/subscriptions", - "organizations_url": "https://api.github.com/users/k49ur4/orgs", - "repos_url": "https://api.github.com/users/k49ur4/repos", - "events_url": "https://api.github.com/users/k49ur4/events{/privacy}", - "received_events_url": "https://api.github.com/users/k49ur4/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "JiYu131", - "id": 139472062, - "node_id": "U_kgDOCFAsvg", - "avatar_url": "https://avatars.githubusercontent.com/u/139472062?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/JiYu131", - "html_url": "https://github.com/JiYu131", - "followers_url": "https://api.github.com/users/JiYu131/followers", - "following_url": "https://api.github.com/users/JiYu131/following{/other_user}", - "gists_url": "https://api.github.com/users/JiYu131/gists{/gist_id}", - "starred_url": "https://api.github.com/users/JiYu131/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/JiYu131/subscriptions", - "organizations_url": "https://api.github.com/users/JiYu131/orgs", - "repos_url": "https://api.github.com/users/JiYu131/repos", - "events_url": "https://api.github.com/users/JiYu131/events{/privacy}", - "received_events_url": "https://api.github.com/users/JiYu131/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "JasonHan2009", - "id": 200713607, - "node_id": "U_kgDOC_alhw", - "avatar_url": "https://avatars.githubusercontent.com/u/200713607?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/JasonHan2009", - "html_url": "https://github.com/JasonHan2009", - "followers_url": "https://api.github.com/users/JasonHan2009/followers", - "following_url": "https://api.github.com/users/JasonHan2009/following{/other_user}", - "gists_url": "https://api.github.com/users/JasonHan2009/gists{/gist_id}", - "starred_url": "https://api.github.com/users/JasonHan2009/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/JasonHan2009/subscriptions", - "organizations_url": "https://api.github.com/users/JasonHan2009/orgs", - "repos_url": "https://api.github.com/users/JasonHan2009/repos", - "events_url": "https://api.github.com/users/JasonHan2009/events{/privacy}", - "received_events_url": "https://api.github.com/users/JasonHan2009/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "IAFEnvoy", - "id": 83523430, - "node_id": "MDQ6VXNlcjgzNTIzNDMw", - "avatar_url": "https://avatars.githubusercontent.com/u/83523430?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/IAFEnvoy", - "html_url": "https://github.com/IAFEnvoy", - "followers_url": "https://api.github.com/users/IAFEnvoy/followers", - "following_url": "https://api.github.com/users/IAFEnvoy/following{/other_user}", - "gists_url": "https://api.github.com/users/IAFEnvoy/gists{/gist_id}", - "starred_url": "https://api.github.com/users/IAFEnvoy/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/IAFEnvoy/subscriptions", - "organizations_url": "https://api.github.com/users/IAFEnvoy/orgs", - "repos_url": "https://api.github.com/users/IAFEnvoy/repos", - "events_url": "https://api.github.com/users/IAFEnvoy/events{/privacy}", - "received_events_url": "https://api.github.com/users/IAFEnvoy/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "FTS427", - "id": 122330825, - "node_id": "U_kgDOB0qeyQ", - "avatar_url": "https://avatars.githubusercontent.com/u/122330825?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/FTS427", - "html_url": "https://github.com/FTS427", - "followers_url": "https://api.github.com/users/FTS427/followers", - "following_url": "https://api.github.com/users/FTS427/following{/other_user}", - "gists_url": "https://api.github.com/users/FTS427/gists{/gist_id}", - "starred_url": "https://api.github.com/users/FTS427/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/FTS427/subscriptions", - "organizations_url": "https://api.github.com/users/FTS427/orgs", - "repos_url": "https://api.github.com/users/FTS427/repos", - "events_url": "https://api.github.com/users/FTS427/events{/privacy}", - "received_events_url": "https://api.github.com/users/FTS427/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - }, - { - "login": "ItsDApples", - "id": 124063865, - "node_id": "U_kgDOB2UQeQ", - "avatar_url": "https://avatars.githubusercontent.com/u/124063865?v=4", - "gravatar_id": "", - "url": "https://api.github.com/users/ItsDApples", - "html_url": "https://github.com/ItsDApples", - "followers_url": "https://api.github.com/users/ItsDApples/followers", - "following_url": "https://api.github.com/users/ItsDApples/following{/other_user}", - "gists_url": "https://api.github.com/users/ItsDApples/gists{/gist_id}", - "starred_url": "https://api.github.com/users/ItsDApples/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/ItsDApples/subscriptions", - "organizations_url": "https://api.github.com/users/ItsDApples/orgs", - "repos_url": "https://api.github.com/users/ItsDApples/repos", - "events_url": "https://api.github.com/users/ItsDApples/events{/privacy}", - "received_events_url": "https://api.github.com/users/ItsDApples/received_events", - "type": "User", - "user_view_type": "public", - "site_admin": false, - "contributions": 1, - "additions": 0, - "deletions": 0, - "commits": 0 - } -] From 822f7959b79171c07f43dffc84cdc2a538fb7c26 Mon Sep 17 00:00:00 2001 From: MrlingXD <90316914+wling-art@users.noreply.github.com> Date: Mon, 24 Nov 2025 18:43:31 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9A=A1=EF=B8=8F=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=B4=A1=E7=8C=AE=E8=80=85=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 1 - src/components/ContributorCard/index.tsx | 180 ++++++++--------------- 2 files changed, 58 insertions(+), 123 deletions(-) diff --git a/package.json b/package.json index 16e0b72be..bd945c079 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,6 @@ "scripts": { "docusaurus": "docusaurus", "start": "docusaurus start", - "prebuild": "node scripts/fetchContributors.js", "build": "docusaurus build", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", diff --git a/src/components/ContributorCard/index.tsx b/src/components/ContributorCard/index.tsx index 460f3cd29..b4f8477b9 100644 --- a/src/components/ContributorCard/index.tsx +++ b/src/components/ContributorCard/index.tsx @@ -1,6 +1,14 @@ import React, { useEffect, useState } from "react"; import "./styles.css"; +const CACHE_KEY = "contributors_cache"; +const CACHE_DURATION = 2 * 60 * 60 * 1000; // 2小时 + +interface CacheData { + data: Contributor[]; + timestamp: number; +} + interface Contributor { id: number; login: string; @@ -27,6 +35,34 @@ interface ContributorCardItemProps { rank?: number; } +/** + * 获取缓存数据 + */ +function getCachedContributors(): Contributor[] | null { + try { + const cached = localStorage.getItem(CACHE_KEY); + if (!cached) return null; + + const { data, timestamp } = JSON.parse(cached) as CacheData; + const isExpired = Date.now() - timestamp > CACHE_DURATION; + + return isExpired ? null : data; + } catch { + return null; + } +} + +/** + * 保存缓存数据 + */ +function setCachedContributors(data: Contributor[]): void { + try { + localStorage.setItem(CACHE_KEY, JSON.stringify({ data, timestamp: Date.now() })); + } catch { + console.warn("无法保存缓存数据"); + } +} + /** * 获取GitHub贡献者数据(带分页) * @param {string} repo 仓库名称,格式为 "用户名/仓库名" @@ -36,20 +72,19 @@ async function fetchContributors(repo: string): Promise { try { let allContributors: Contributor[] = []; let page = 1; - let hasNextPage = true; + let hasMore = true; - // 使用循环处理分页,GitHub API默认每页返回30条数据 - while (hasNextPage) { + while (hasMore) { const response = await fetch(`https://api.github.com/repos/${repo}/contributors?per_page=100&page=${page}`); if (!response.ok) { throw new Error("获取贡献者数据失败"); } const data = await response.json(); - if (data.length === 0) { - hasNextPage = false; + if (!Array.isArray(data) || data.length === 0) { + hasMore = false; } else { - allContributors = [...allContributors, ...data]; + allContributors.push(...data); page++; } } @@ -62,69 +97,6 @@ async function fetchContributors(repo: string): Promise { } } -/** - * 获取所有贡献者的详细统计信息 - * @param {string} repo 仓库名称,格式为 "用户名/仓库名" - * @returns {Promise} 包含统计数据的贡献者数组 - */ -async function fetchAllContributorStats(repo: string): Promise { - try { - // 直接获取全部贡献者统计数据 - const response = await fetch(`https://api.github.com/repos/${repo}/stats/contributors`); - if (!response.ok) { - // GitHub可能会返回202,表示正在计算统计信息 - if (response.status === 202) { - // 等待几秒后重试 - await new Promise((resolve) => setTimeout(resolve, 3000)); - return fetchAllContributorStats(repo); - } - throw new Error("获取贡献者统计数据失败"); - } - - const data = await response.json(); - - // 确保返回的是数组 - if (!Array.isArray(data)) { - console.error("GitHub API返回的统计数据不是数组格式:", data); - return []; - } - - return data; - } catch (error) { - console.error("获取贡献者统计数据出错:", error); - return []; - } -} - -/** - * 获取单个贡献者的统计信息 - * @param {Array} allStats 所有贡献者的统计数据 - * @param {string} username 贡献者用户名 - * @returns {Object} 贡献者统计数据 - */ -function getContributorStats(allStats: ContributorStats[], username: string): { additions: number; deletions: number } { - // 确保 allStats 是数组 - if (!Array.isArray(allStats)) { - console.error("获取的统计数据格式错误:", allStats); - return { additions: 0, deletions: 0 }; - } - - const userStats = allStats.find((stat) => stat && stat.author && stat.author.login === username); - if (!userStats) { - return { additions: 0, deletions: 0 }; - } - - // 计算总添加和删除行数 - let additions = 0; - let deletions = 0; - userStats.weeks.forEach((week) => { - additions += week.a; - deletions += week.d; - }); - - return { additions, deletions }; -} - /** * 判断用户是否为机器人账户 * @param {string} username 用户名 @@ -153,26 +125,16 @@ function isBot(username: string): boolean { * @returns {string} 格式化后的字符串 */ function formatNumber(num: number): string { - if (num >= 1000000) { - return (num / 1000000).toFixed(1) + "M"; - } else if (num >= 1000) { - return (num / 1000).toFixed(1) + "k"; - } - return num.toString(); + return Intl.NumberFormat("en-US", { + notation: "compact", + maximumFractionDigits: 1 + }).format(num); } /** * 单个贡献者卡片组件 */ export function ContributorCardItem({ contributor, rank }: ContributorCardItemProps): React.ReactElement { - // 优先使用详细统计中的增删行数,如果没有则使用贡献数 - const additions = contributor.additions || 0; - const deletions = contributor.deletions || 0; - const totalContribution = additions + deletions; - - // 判断是否有增删行数数据 - const hasLineStats = additions > 0 || deletions > 0; - return (
{rank &&
{rank}
} @@ -185,17 +147,7 @@ export function ContributorCardItem({ contributor, rank }: ContributorCardItemPr {contributor.login}
-
- {hasLineStats ? ( - <> - +{formatNumber(additions)} - -{formatNumber(deletions)} - - ) : ( - 行数统计暂未显示 - )} -
-
总贡献: {formatNumber(contributor.contributions)} 次提交
+
贡献: {formatNumber(contributor.contributions)} 次
); @@ -219,41 +171,25 @@ export default function ContributorCard({ repo = "Cubic-Project/NitWikit" }: Con try { setLoading(true); + const cachedData = getCachedContributors(); + if (cachedData) { + setContributors(cachedData); + setLoading(false); + return; + } + // 直接从GitHub API获取贡献者数据 const contributorsData = await fetchContributors(repo); // 过滤掉机器人账户 const filteredContributors = contributorsData.filter((contributor) => !isBot(contributor.login)); - // 尝试获取详细统计数据 - let statsData: ContributorStats[] = []; - try { - statsData = await fetchAllContributorStats(repo); - } catch (statsError) { - console.warn("获取详细统计数据失败,将使用基本贡献数据:", statsError); - } - - // 合并统计数据到贡献者数据 - const contributorsWithStats = filteredContributors.map((contributor) => { - const stats = getContributorStats(statsData, contributor.login); - - return { - ...contributor, - additions: stats.additions || 0, - deletions: stats.deletions || 0, - total: contributor.contributions || 0 - }; - }); - - // 确保所有贡献者有非零贡献值进行排序 - const validContributors = contributorsWithStats.filter((c) => c.contributions > 0 || c.total > 0); - - // 按照贡献总量排序 - const sorted = validContributors.sort( - (a, b) => (b.contributions || b.total) - (a.contributions || a.total) - ); + // 排序 + const sorted = filteredContributors + .filter((c) => c.contributions > 0) + .sort((a, b) => b.contributions - a.contributions); - console.log(`处理后共有 ${sorted.length} 位有效贡献者`); + setCachedContributors(sorted); setContributors(sorted); } catch (err) { const errorMessage = err instanceof Error ? err.message : "未知错误";