| const path = require('path'); | |
| const fs = require('fs'); | |
| function formatStar(star) { | |
| return String(star) | |
| .split('') | |
| .reverse() | |
| .reduce((prev, next, index) => { | |
| return (index % 3 ? next : next + '.') + prev; | |
| }); | |
| } | |
| async function getGithubStar() { | |
| const headers = { Accept: 'application/vnd.github+json' }; | |
| if (process.env.GITHUB_TOKEN) { | |
| headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`; | |
| } | |
| const res = await fetch('https://api.github.com/repos/apache/doris', { headers }); | |
| const data = await res.json().catch(() => ({})); | |
| if (!res.ok || !data || !data.stargazers_count) { | |
| console.error('Failed to fetch star count from GitHub API:', res.status, data); | |
| process.exit(1); | |
| } | |
| return (+parseFloat(formatStar(data.stargazers_count)).toFixed(1)).toString(); | |
| } | |
| function updateGithubData(newStar) { | |
| const filePath = path.join(__dirname, '../src/constant/github.data.ts'); | |
| const content = fs.readFileSync(filePath, 'utf-8'); | |
| const newContent = content.replace(/export const STAR_COUNT = '.*';/, `export const STAR_COUNT = '${newStar}';`); | |
| fs.writeFileSync(filePath, newContent, 'utf-8'); | |
| } | |
| async function main() { | |
| const star = await getGithubStar(); | |
| updateGithubData(star); | |
| console.log('successful,stars:', star); | |
| } | |
| main().catch((err) => { | |
| console.error(err); | |
| process.exit(1); | |
| }); | |