diff --git a/src/common/utils.js b/src/common/utils.js index 1215fc9ac8cc2..147f5408f81f3 100644 --- a/src/common/utils.js +++ b/src/common/utils.js @@ -77,7 +77,7 @@ const isValidHexColor = (hexColor) => { /** * Returns boolean if value is either "true" or "false" else the value as it is. * - * @param {string | boolean} value The value to parse. + * @param {string | boolean| undefined} value The value to parse. * @returns {boolean | undefined } The parsed value. */ const parseBoolean = (value) => { diff --git a/src/fetchers/stats-fetcher.js b/src/fetchers/stats-fetcher.js index 7f6cb9e5e95b4..a8ed082c57102 100644 --- a/src/fetchers/stats-fetcher.js +++ b/src/fetchers/stats-fetcher.js @@ -7,6 +7,7 @@ import { CustomError, logger, MissingParamError, + parseBoolean, request, wrapTextMultiline, } from "../common/utils.js"; @@ -22,7 +23,7 @@ const fetcher = (variables, token) => { return request( { query: ` - query userInfo($login: String!) { + query userInfo($login: String!, $ownerAffiliations: [RepositoryAffiliation]) { user(login: $login) { name login @@ -45,7 +46,7 @@ const fetcher = (variables, token) => { followers { totalCount } - repositories(ownerAffiliations: OWNER) { + repositories(ownerAffiliations: $ownerAffiliations) { totalCount } } @@ -70,9 +71,9 @@ const repositoriesFetcher = (variables, token) => { return request( { query: ` - query userInfo($login: String!, $after: String) { + query userInfo($login: String!, $after: String, $ownerAffiliations: [RepositoryAffiliation]) { user(login: $login) { - repositories(first: 100, ownerAffiliations: OWNER, orderBy: {direction: DESC, field: STARGAZERS}, after: $after) { + repositories(first: 100, ownerAffiliations: $ownerAffiliations, orderBy: {direction: DESC, field: STARGAZERS}, after: $after) { nodes { name stargazers { @@ -149,7 +150,14 @@ const totalStarsFetcher = async (username, repoToHide) => { let hasNextPage = true; let endCursor = null; while (hasNextPage) { - const variables = { login: username, first: 100, after: endCursor }; + const variables = { + login: username, + first: 100, + after: endCursor, + ownerAffiliations: parseBoolean(process.env.INCLUDE_ORGS) + ? ["OWNER", "COLLABORATOR"] + : ["OWNER"], + }; let res = await retryer(repositoriesFetcher, variables); if (res.data.errors) { @@ -203,7 +211,12 @@ const fetchStats = async ( rank: { level: "C", score: 0 }, }; - let res = await retryer(fetcher, { login: username }); + let res = await retryer(fetcher, { + login: username, + ownerAffiliations: parseBoolean(process.env.INCLUDE_ORGS) + ? ["OWNER", "COLLABORATOR"] + : ["OWNER"], + }); // Catch GraphQL errors. if (res.data.errors) { diff --git a/src/fetchers/top-languages-fetcher.js b/src/fetchers/top-languages-fetcher.js index 86d794435be08..cf8c3d16610ab 100644 --- a/src/fetchers/top-languages-fetcher.js +++ b/src/fetchers/top-languages-fetcher.js @@ -4,6 +4,7 @@ import { CustomError, logger, MissingParamError, + parseBoolean, request, wrapTextMultiline, } from "../common/utils.js"; @@ -19,10 +20,10 @@ const fetcher = (variables, token) => { return request( { query: ` - query userInfo($login: String!) { + query userInfo($login: String!, $ownerAffiliations: [RepositoryAffiliation]) { user(login: $login) { # fetch only owner repos & not forks - repositories(ownerAffiliations: OWNER, isFork: false, first: 100) { + repositories(ownerAffiliations: $ownerAffiliations, isFork: false, first: 100) { nodes { name languages(first: 10, orderBy: {field: SIZE, direction: DESC}) { @@ -57,7 +58,12 @@ const fetcher = (variables, token) => { const fetchTopLanguages = async (username, exclude_repo = []) => { if (!username) throw new MissingParamError(["username"]); - const res = await retryer(fetcher, { login: username }); + const res = await retryer(fetcher, { + login: username, + ownerAffiliations: parseBoolean(process.env.INCLUDE_ORGS) + ? ["OWNER", "COLLABORATOR"] + : ["OWNER"], + }); if (res.data.errors) { logger.error(res.data.errors);