From a92243854a1f452c2d1e0b04f67325850de888b4 Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Thu, 22 Apr 2021 13:56:26 +0200 Subject: [PATCH] Add `repositories_skipped` option (#251) --- source/plugins/base/README.md | 1 + source/plugins/base/index.mjs | 6 +++++- source/plugins/base/metadata.yml | 9 +++++++++ source/plugins/languages/index.mjs | 1 + source/plugins/lines/index.mjs | 1 + 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/source/plugins/base/README.md b/source/plugins/base/README.md index 4819926b..42fed0eb 100644 --- a/source/plugins/base/README.md +++ b/source/plugins/base/README.md @@ -36,4 +36,5 @@ These are all enabled by default, but you can explicitely opt out from them. repositories: 100 # Query only last 100 repositories repositories_forks: no # Don't include forks repositories_affiliations: owner, collaborator # Display only repositories where user is owner or collaborator + repositories_skipped: lowlighter/lowlighter # Exclude automatically "lowlighter/lowlighter" repository from plugins allowing a skip list ``` diff --git a/source/plugins/base/index.mjs b/source/plugins/base/index.mjs index 8185bdeb..7644f9db 100644 --- a/source/plugins/base/index.mjs +++ b/source/plugins/base/index.mjs @@ -7,7 +7,7 @@ export default async function({login, graphql, data, q, queries, imports}, conf) { //Load inputs console.debug(`metrics/compute/${login}/base > started`) - let {repositories, "repositories.forks":_forks, "repositories.affiliations":_affiliations} = imports.metadata.plugins.base.inputs({data, q, account:"bypass"}, {repositories:conf.settings.repositories ?? 100}) + let {repositories, "repositories.forks":_forks, "repositories.affiliations":_affiliations, "repositories.skipped":_skipped} = imports.metadata.plugins.base.inputs({data, q, account:"bypass"}, {repositories:conf.settings.repositories ?? 100}) const forks = _forks ? "" : ", isFork: false" const affiliations = _affiliations?.length ? `, ownerAffiliations: [${_affiliations.map(x => x.toLocaleUpperCase()).join(", ")}]${conf.authenticated === login ? `, affiliations: [${_affiliations.map(x => x.toLocaleUpperCase()).join(", ")}]` : ""}` : "" @@ -20,6 +20,10 @@ for (const part of conf.settings.plugins.base.parts) data.base[part] = `base.${part}` in q ? legacy.converter(q[`base.${part}`]) : defaulted + //Shared options + data.shared = {"repositories.skipped":_skipped} + console.debug(`metrics/compute/${login}/base > shared options > ${JSON.stringify(data.shared)}`) + //Iterate through account types for (const account of ["user", "organization"]) { try { diff --git a/source/plugins/base/metadata.yml b/source/plugins/base/metadata.yml index a2c243de..7de3dc22 100644 --- a/source/plugins/base/metadata.yml +++ b/source/plugins/base/metadata.yml @@ -46,3 +46,12 @@ inputs: - owner # Use repositories you own - collaborator # Use repositories you have contributed too - organization_member # Use repositories where you're an organization member + + # List of default repositories that will be skipped + # Plugins supporting a "skip repositories option" will automatically append repositories listed in this option + repositories_skipped: + description: Default repositories to skip + type: array + format: comma-separated + default: "" + example: my-repo-1, my-repo-2, owner/repo-3 ... \ No newline at end of file diff --git a/source/plugins/languages/index.mjs b/source/plugins/languages/index.mjs index 9ed39d73..2bcbd515 100644 --- a/source/plugins/languages/index.mjs +++ b/source/plugins/languages/index.mjs @@ -9,6 +9,7 @@ //Load inputs let {ignored, skipped, colors, details, threshold, limit} = imports.metadata.plugins.languages.inputs({data, account, q}) threshold = (Number(threshold.replace(/%$/, ""))||0)/100 + skipped.push(...data.shared["repositories.skipped"]) if (!limit) limit = Infinity diff --git a/source/plugins/lines/index.mjs b/source/plugins/lines/index.mjs index e1b177f6..227e07b3 100644 --- a/source/plugins/lines/index.mjs +++ b/source/plugins/lines/index.mjs @@ -8,6 +8,7 @@ //Load inputs let {skipped} = imports.metadata.plugins.lines.inputs({data, account, q}) + skipped.push(...data.shared["repositories.skipped"]) //Context let context = {mode:"user"}