Refactor plugins and erros

This commit is contained in:
lowlighter
2020-10-26 19:31:56 +01:00
parent c27d3edaa5
commit c6884b0a86
14 changed files with 810 additions and 1009 deletions

View File

@@ -1,36 +1,25 @@
//Setup
export default function ({login, imports, rest, computed, pending, q}, {enabled = false} = {}) {
//Check if plugin is enabled and requirements are met
if (!enabled)
return computed.plugins.selfskip = null
if (!q.selfskip)
return computed.plugins.selfskip = null
console.debug(`metrics/compute/${login}/plugins > selfskip`)
export default async function ({login, rest, computed, q}, {enabled = false} = {}) {
//Plugin execution
pending.push(new Promise(async solve => {
try {
//Search for auto-generated commits
let commits = 0
for (let page = 0;;page++) {
const {data} = await rest.repos.listCommits({owner:login, repo:login, author:login, per_page:100, page})
commits += data.filter(({commit}) => /\[Skip GitHub Action\]/.test(commit.message)).length
if (!data.length)
break
}
//Save results
computed.plugins.selfskip = {commits}
computed.commits -= commits
console.debug(`metrics/compute/${login}/plugins > selfskip > success`)
console.debug(JSON.stringify(computed.plugins.selfskip))
solve()
}
catch (error) {
//Generic error
computed.plugins.selfskip = {error:`An error occured`}
console.debug(`metrics/compute/${login}/plugins > selfskip > error`)
console.debug(error)
solve()
}
}))
try {
//Check if plugin is enabled and requirements are met
if ((!enabled)||(!q.selfskip))
return null
//Search for auto-generated commits
let commits = 0
for (let page = 0;;page++) {
const {data} = await rest.repos.listCommits({owner:login, repo:login, author:login, per_page:100, page})
commits += data.filter(({commit}) => /\[Skip GitHub Action\]/.test(commit.message)).length
if (!data.length)
break
}
//Results
computed.commits -= commits
return {commits}
}
//Handle errors
catch (error) {
console.debug(error)
throw {error:{message:`An error occured`}}
}
}