Remove ownerAffiliations: OWNER constraint and add option to include forks (#61)
This commit is contained in:
@@ -238,7 +238,9 @@
|
||||
|
||||
//Repositories to use
|
||||
const repositories = input.number("repositories")
|
||||
const forks = input.bool("repositories_forks")
|
||||
info("Repositories to process", repositories)
|
||||
info("Include forked repositories", forks)
|
||||
|
||||
//Die on plugins errors
|
||||
const die = input.bool("plugins_errors_fatal")
|
||||
@@ -247,7 +249,7 @@
|
||||
//Build query
|
||||
const query = input.object("query")
|
||||
info("Query additional params", query)
|
||||
q = {...query, ...q, base:false, ...base, ...config, repositories, template}
|
||||
q = {...query, ...q, base:false, ...base, ...config, repositories, "repositories.forks":forks, template}
|
||||
|
||||
//Render metrics
|
||||
const {rendered} = await metrics({login:user, q, dflags}, {graphql, rest, plugins, conf, die, verify}, {Plugins, Templates})
|
||||
|
||||
@@ -51,7 +51,8 @@
|
||||
else {
|
||||
//Query data from GitHub API
|
||||
console.debug(`metrics/compute/${login} > graphql query`)
|
||||
Object.assign(data, await graphql(queries.common({login, "calendar.from":new Date(Date.now()-14*24*60*60*1000).toISOString(), "calendar.to":(new Date()).toISOString()})))
|
||||
const forks = q["repositories.forks"] || false
|
||||
Object.assign(data, await graphql(queries.common({login, "calendar.from":new Date(Date.now()-14*24*60*60*1000).toISOString(), "calendar.to":(new Date()).toISOString(), forks:forks ? "" : ", isFork: false"})))
|
||||
//Query repositories from GitHub API
|
||||
{
|
||||
//Iterate through repositories
|
||||
@@ -59,7 +60,7 @@
|
||||
let pushed = 0
|
||||
do {
|
||||
console.debug(`metrics/compute/${login} > retrieving repositories after ${cursor}`)
|
||||
const {user:{repositories:{edges, nodes}}} = await graphql(queries.repositories({login, after:cursor ? `after: "${cursor}"` : "", repositories:Math.min(repositories, 100)}))
|
||||
const {user:{repositories:{edges, nodes}}} = await graphql(queries.repositories({login, after:cursor ? `after: "${cursor}"` : "", repositories:Math.min(repositories, 100), forks:forks ? "" : ", isFork: false"}))
|
||||
cursor = edges?.[edges?.length-1]?.cursor
|
||||
data.user.repositories.nodes.push(...nodes)
|
||||
pushed = nodes.length
|
||||
@@ -90,7 +91,7 @@
|
||||
|
||||
//Template rendering
|
||||
console.debug(`metrics/compute/${login} > render`)
|
||||
let rendered = await ejs.render(image, {...data, s, style, fonts}, {views, async:true})
|
||||
let rendered = await ejs.render(image, {...data, s, f:format, style, fonts}, {views, async:true})
|
||||
//Apply resizing
|
||||
const {resized, mime} = await svgresize(rendered, {paddings:q["config.padding"], convert})
|
||||
rendered = resized
|
||||
@@ -129,11 +130,11 @@
|
||||
}
|
||||
|
||||
/** Formatter */
|
||||
function format(n) {
|
||||
function format(n, {sign = false} = {}) {
|
||||
for (const {u, v} of [{u:"b", v:10**9}, {u:"m", v:10**6}, {u:"k", v:10**3}])
|
||||
if (n/v >= 1)
|
||||
return `${(n/v).toFixed(2).substr(0, 4).replace(/[.]0*$/, "")}${u}`
|
||||
return n
|
||||
return `${(sign)&&(n > 0) ? "+" : ""}${(n/v).toFixed(2).substr(0, 4).replace(/[.]0*$/, "")}${u}`
|
||||
return `${(sign)&&(n > 0) ? "+" : ""}${n}`
|
||||
}
|
||||
|
||||
/** Bytes formatter */
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
name:"metrics",
|
||||
watchers:{totalCount:Math.floor(Math.random()*100)},
|
||||
stargazers:{totalCount:Math.floor(Math.random()*1000)},
|
||||
owner:{login:"lowlighter"},
|
||||
languages:{
|
||||
edges:[
|
||||
{size:111733, node:{color:"#f1e05a", name:"JavaScript"}
|
||||
@@ -141,6 +142,7 @@
|
||||
user:{
|
||||
repository:{
|
||||
name:"metrics",
|
||||
owner:{login:"lowlighter"},
|
||||
createdAt:new Date().toISOString(),
|
||||
diskUsage:Math.floor(Math.random()*10000),
|
||||
watchers:{totalCount:Math.floor(Math.random()*100)},
|
||||
|
||||
Reference in New Issue
Block a user