diff --git a/source/plugins/activity/index.mjs b/source/plugins/activity/index.mjs index 275fec02..e38cc2a7 100644 --- a/source/plugins/activity/index.mjs +++ b/source/plugins/activity/index.mjs @@ -137,6 +137,9 @@ export default async function({login, data, rest, q, account, imports}, {enabled //Pushed commits case "PushEvent": { let {size, commits, ref} = payload + commits = commits.filter(({author:{email}}) => !ignored.includes(email)) + if (!commits.length) + return null if (commits.slice(-1).pop()?.message.startsWith("Merge branch ")) commits = commits.slice(-1) return {type:"push", actor, timestamp, repo, size, branch:ref.match(/refs.heads.(?.*)/)?.groups?.branch ?? null, commits:commits.reverse().map(({sha, message}) => ({sha:sha.substring(0, 7), message}))} diff --git a/source/plugins/base/metadata.yml b/source/plugins/base/metadata.yml index 1b8652ae..857f2ea9 100644 --- a/source/plugins/base/metadata.yml +++ b/source/plugins/base/metadata.yml @@ -88,10 +88,13 @@ inputs: global: yes users_ignored: - description: Default ignored users + description: | + Default ignored users + + Note that email are supported only commits-related elements. type: array format: comma-separated - default: github-actions[bot], dependabot[bot], dependabot-preview[bot], actions-user + default: github-actions[bot], dependabot[bot], dependabot-preview[bot], actions-user, action@github.com global: yes commits_authoring: diff --git a/source/plugins/contributors/index.mjs b/source/plugins/contributors/index.mjs index 0b474d92..04bb406f 100644 --- a/source/plugins/contributors/index.mjs +++ b/source/plugins/contributors/index.mjs @@ -9,6 +9,7 @@ export default async function({login, q, imports, data, rest, graphql, queries, //Load inputs let {head, base, ignored, contributions, sections, categories} = imports.metadata.plugins.contributors.inputs({data, account, q}) const repo = {owner:data.repo.owner.login, repo:data.repo.name} + ignored.push(...data.shared["users.ignored"]) //Retrieve head and base commits console.debug(`metrics/compute/${login}/plugins > contributors > querying api head and base commits`) @@ -49,8 +50,8 @@ export default async function({login, q, imports, data, rest, graphql, queries, //Compute contributors and contributions let contributors = {} - for (const {author:{login, avatar_url:avatar}, commit:{message = ""}} of commits) { - if ((!login) || (ignored.includes(login))) { + for (const {author:{login, avatar_url:avatar}, commit:{message = "", author:{email = ""} = {}}} of commits) { + if ((!login) || (ignored.includes(login)) || (ignored.includes(email))) { console.debug(`metrics/compute/${login}/plugins > contributors > ignored contributor "${login}"`) continue }