- Languages, issues and pr are now plugins (but enabled by default for retro-compatibility) - Query parameters are now parsed correctly - Redesigned server index with vue.js
36 lines
1.4 KiB
JavaScript
36 lines
1.4 KiB
JavaScript
//Setup
|
|
export default function ({login, 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`)
|
|
|
|
//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()
|
|
}
|
|
}))
|
|
} |