const axios = require('axios'); const fs = require('fs'); // Indentation function function indentString(string, indentation) { return string.split('\n').map(line => indentation + line).join('\n').trim(); } let contributors = '
'; let index = 0; let page = 1; function fetchPage() { axios.get(`https://api.github.com/repos/TRaSH-Guides/Guides/contributors?per_page=100&page=${page}`) .then((response) => { if (response.data.length === 0) { // No more contributors, write the file contributors += '\n
'; contributors = indentString(contributors, ''); fs.writeFileSync('CONTRIBUTORS.md', `\n\n## Contributors\n\n\n${contributors}\n\n`); return; } response.data.forEach((user, i) => { // Exclude bots and actions-user if (user.type === 'Bot' || user.login.toLowerCase().includes('bot') || user.login === 'actions-user' || user.login === 'mynameisbogdan') return; // Determine row index for background color const rowIndex = Math.floor(index / 5); const bgColor = (rowIndex % 2 === 0) ? '#1e2129' : '#303850'; const userHtml = `
${user.login}
${user.login}
`; contributors += '\n' + indentString(userHtml, ' '); index++; }); // Fetch the next page page++; fetchPage(); }) .catch((error) => { console.error(`Could not fetch contributors: ${error}`); }); } fetchPage();