diff --git a/source/app/mocks/api/github/graphql/base.repositories.mjs b/source/app/mocks/api/github/graphql/base.repositories.mjs index 01e21acd..0213f55f 100644 --- a/source/app/mocks/api/github/graphql/base.repositories.mjs +++ b/source/app/mocks/api/github/graphql/base.repositories.mjs @@ -36,6 +36,7 @@ issues_open:{totalCount:faker.datatype.number(100)}, issues_closed:{totalCount:faker.datatype.number(100)}, pr_open:{totalCount:faker.datatype.number(100)}, + pr_closed:{totalCount:faker.datatype.number(100)}, pr_merged:{totalCount:faker.datatype.number(100)}, releases:{totalCount:faker.datatype.number(100)}, forkCount:faker.datatype.number(100), diff --git a/source/app/mocks/api/github/graphql/base.repository.mjs b/source/app/mocks/api/github/graphql/base.repository.mjs index 736ef718..293d0e0b 100644 --- a/source/app/mocks/api/github/graphql/base.repository.mjs +++ b/source/app/mocks/api/github/graphql/base.repository.mjs @@ -25,6 +25,7 @@ issues_open:{totalCount:faker.datatype.number(100)}, issues_closed:{totalCount:faker.datatype.number(100)}, pr_open:{totalCount:faker.datatype.number(100)}, + pr_closed:{totalCount:faker.datatype.number(100)}, pr_merged:{totalCount:faker.datatype.number(100)}, releases:{totalCount:faker.datatype.number(100)}, forkCount:faker.datatype.number(100), diff --git a/source/app/mocks/api/github/graphql/followup.user.mjs b/source/app/mocks/api/github/graphql/followup.user.mjs new file mode 100644 index 00000000..4cc692c5 --- /dev/null +++ b/source/app/mocks/api/github/graphql/followup.user.mjs @@ -0,0 +1,13 @@ +/**Mocked data */ + export default function({faker, query, login = faker.internet.userName()}) { + console.debug("metrics/compute/mocks > mocking graphql api result > followup/user") + return ({ + user:{ + issues_open:{totalCount:faker.datatype.number(100)}, + issues_closed:{totalCount:faker.datatype.number(100)}, + pr_open:{totalCount:faker.datatype.number(100)}, + pr_closed:{totalCount:faker.datatype.number(100)}, + pr_merged:{totalCount:faker.datatype.number(100)}, + }, + }) + } diff --git a/source/app/web/statics/app.placeholder.js b/source/app/web/statics/app.placeholder.js index bd5463b7..9449f96c 100644 --- a/source/app/web/statics/app.placeholder.js +++ b/source/app/web/statics/app.placeholder.js @@ -67,6 +67,7 @@ issues_open:faker.datatype.number(1000), issues_closed:faker.datatype.number(1000), pr_open:faker.datatype.number(1000), + pr_closed:{totalCount:faker.datatype.number(100)}, pr_merged:faker.datatype.number(1000), forks:faker.datatype.number(1000), releases:faker.datatype.number(1000), @@ -161,8 +162,13 @@ //Follow-up ...(set.plugins.enabled.followup ? ({ followup:{ + sections:options["followup.sections"].split(",").map(x => x.trim()).filter(x => ["user", "repositories"].includes(x)), issues:{get count() { return this.open + this.closed }, open:faker.datatype.number(1000), closed:faker.datatype.number(1000)}, - pr:{get count() { return this.open + this.merged }, open:faker.datatype.number(1000), merged:faker.datatype.number(1000)}, + pr:{get count() { return this.open + this.merged }, open:faker.datatype.number(1000), closed:faker.datatype.number(1000), merged:faker.datatype.number(1000)}, + user:{ + issues:{get count() { return this.open + this.closed }, open:faker.datatype.number(1000), closed:faker.datatype.number(1000)}, + pr:{get count() { return this.open + this.merged }, open:faker.datatype.number(1000), closed:faker.datatype.number(1000), merged:faker.datatype.number(1000)}, + } } }) : null), //Notable diff --git a/source/plugins/base/queries/repositories.graphql b/source/plugins/base/queries/repositories.graphql index af65a7df..5174edf8 100644 --- a/source/plugins/base/queries/repositories.graphql +++ b/source/plugins/base/queries/repositories.graphql @@ -34,6 +34,9 @@ query BaseRepositories { pr_open: pullRequests(states: OPEN) { totalCount } + pr_closed: pullRequests(states: CLOSED) { + totalCount + } pr_merged: pullRequests(states: MERGED) { totalCount } diff --git a/source/plugins/base/queries/repository.graphql b/source/plugins/base/queries/repository.graphql index f24cf8e0..f4f4c94a 100644 --- a/source/plugins/base/queries/repository.graphql +++ b/source/plugins/base/queries/repository.graphql @@ -33,6 +33,9 @@ query BaseRepository { pr_open: pullRequests(states: OPEN) { totalCount } + pr_closed: pullRequests(states: CLOSED) { + totalCount + } pr_merged: pullRequests(states: MERGED) { totalCount } diff --git a/source/plugins/core/index.mjs b/source/plugins/core/index.mjs index cf178dd2..1a2f3e34 100644 --- a/source/plugins/core/index.mjs +++ b/source/plugins/core/index.mjs @@ -9,7 +9,7 @@ const {"config.animations":animations, "config.timezone":_timezone, "debug.flags":dflags} = imports.metadata.plugins.core.inputs({data, account, q}) //Init - const computed = {commits:0, sponsorships:0, licenses:{favorite:"", used:{}}, token:{}, repositories:{watchers:0, stargazers:0, issues_open:0, issues_closed:0, pr_open:0, pr_merged:0, forks:0, forked:0, releases:0}} + const computed = {commits:0, sponsorships:0, licenses:{favorite:"", used:{}}, token:{}, repositories:{watchers:0, stargazers:0, issues_open:0, issues_closed:0, pr_open:0, pr_closed:0, pr_merged:0, forks:0, forked:0, releases:0}} const avatar = imports.imgb64(data.user.avatarUrl) data.computed = computed console.debug(`metrics/compute/${login} > formatting common metrics`) @@ -57,7 +57,7 @@ //Iterate through user's repositories for (const repository of data.user.repositories.nodes) { //Simple properties with totalCount - for (const property of ["watchers", "stargazers", "issues_open", "issues_closed", "pr_open", "pr_merged", "releases"]) + for (const property of ["watchers", "stargazers", "issues_open", "issues_closed", "pr_open", "pr_closed", "pr_merged", "releases"]) computed.repositories[property] += repository[property].totalCount //Forks computed.repositories.forks += repository.forkCount diff --git a/source/plugins/followup/README.md b/source/plugins/followup/README.md index 67ac1e8c..2ec5fbdc 100644 --- a/source/plugins/followup/README.md +++ b/source/plugins/followup/README.md @@ -5,6 +5,9 @@ The *followup* plugin displays the ratio of open/closed issues and the ratio of
Created by user version+ |