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 = `
`;
contributors += '\n' + indentString(userHtml, ' ');
index++;
});
// Fetch the next page
page++;
fetchPage();
})
.catch((error) => {
console.error(`Could not fetch contributors: ${error}`);
});
}
fetchPage();