-
Notifications
You must be signed in to change notification settings - Fork 13
/
generate-contributors.js
47 lines (40 loc) · 1.13 KB
/
generate-contributors.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
const https = require("https");
const fs = require("fs");
const options = {
hostname: "api.github.com",
port: 443,
path: "/repos/paleite/eslint-plugin-diff/contributors",
method: "GET",
headers: {
"User-Agent": "node.js", // GitHub requires a user-agent header
},
};
let rawData = "";
const req = https.request(options, (res) => {
res.setEncoding("utf8");
res.on("data", (chunk) => {
rawData += chunk;
});
res.on("end", () => {
try {
/** @type {{login: string, avatar_url: string, html_url: string}[]} */
const parsedData = JSON.parse(rawData);
const contributorsList = parsedData
.filter(({ login }) => !login.includes("[bot]"))
.map(
(contributor) =>
`- ![${contributor.login}](${contributor.avatar_url}&s=50) [${contributor.login}](${contributor.html_url})`
);
fs.writeFileSync(
"CONTRIBUTORS.md",
["# Contributors", contributorsList.join("\n")].join("\n\n")
);
} catch (e) {
console.error(e.message);
}
});
});
req.on("error", (e) => {
console.error(`Problem with request: ${e.message}`);
});
req.end();