vitest/scripts/update-contributors.ts
Vladimir 471cf97b0c
chore: always require curly braces (#5885)
Co-authored-by: Ari Perkkiö <ari.perkkio@gmail.com>
2024-06-16 18:10:10 +02:00

27 lines
814 B
TypeScript

import { promises as fs } from 'node:fs'
interface Contributor {
login: string
}
async function fetchContributors(page = 1) {
const collaborators: string[] = []
const data = await (await fetch(`https://api.github.com/repos/vitest-dev/vitest/contributors?per_page=100&page=${page}`, {
headers: {
'content-type': 'application/json',
},
})).json() as Contributor[] || []
collaborators.push(...data.map(i => i.login))
if (data.length === 100) {
collaborators.push(...(await fetchContributors(page + 1)))
}
return collaborators.filter(name => !name.includes('[bot]'))
}
async function generate() {
const collaborators = await fetchContributors()
await fs.writeFile('./docs/.vitepress/contributor-names.json', `${JSON.stringify(collaborators, null, 2)}\n`, 'utf8')
}
generate()