From 2653589c338a57a1eccf2f86881ecdd4aaab40d9 Mon Sep 17 00:00:00 2001 From: Benjamin Wright Date: Thu, 3 Nov 2022 11:44:29 -0500 Subject: [PATCH] Uses config data for minStars, minWatchers and forks to filter repos from the user's account --- lib/repos.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib/repos.js b/lib/repos.js index 4b65345..1f7d543 100644 --- a/lib/repos.js +++ b/lib/repos.js @@ -20,19 +20,22 @@ export const getRepos = async (user, configData) => { // let { data: user } = await axios.get(`https://api.github.com/users/${user}/repos?per_page=1001`) let { data: repos } = await axios.get(`https://api.github.com/users/${user}/repos?per_page=1001`) // console.log(repos) - repos = notForks(repos); - const watched = watchedOnly(repos); + if (!configData.forks) { + repos = notForks(repos); + } + const watched = minWatchersOnly(repos, configData.minWatchers); // don't include forks - const starred = starsOnly(repos) + const starred = minStarsOnly(repos, configData.minStars) // only include repose with active issues const withIssues = openIssues(repos); - const combinedRepos = [ + let combinedRepos = [ ...new Set([ ...starred, ...watched, ...withIssues ]) ] + cloneRepos(combinedRepos, getLocalDirectories("./"), configData) } @@ -42,14 +45,14 @@ export const getRepos = async (user, configData) => { * @param {Array} repos a list of repos * @returns {Array} repos with a stargazers */ -export const starsOnly = repos => repos.filter(({ stargazers_count }) => stargazers_count > 0) +export const minStarsOnly = (repos, minStars) => repos.filter(({ stargazers_count }) => stargazers_count >= minStars) /** * Returns a list of github repos that have been watched * @param {Array} repos a list of repos * @returns {Array} */ -export const watchedOnly = repos => repos.filter(({ watchers_count }) => watchers_count > 0) +export const minWatchersOnly = (repos, minWatchers) => repos.filter(({ watchers_count }) => watchers_count >= minWatchers) /** * Returns a list of github repos with open issues