Add support for users with more than 100 gists (#74)

This commit is contained in:
Simon Lecoq
2021-01-23 14:23:14 +01:00
committed by GitHub
parent 7ef8e65951
commit b25c363ed1
3 changed files with 35 additions and 7 deletions

View File

@@ -211,9 +211,21 @@
//Gists query
if (/^query Gists /.test(query)) {
console.debug(`metrics/compute/mocks > mocking graphql api result > Projects`)
return ({
return /after: "MOCKED_CURSOR"/m.test(query) ? ({
user:{
gists:{
edges:[],
nodes:[],
}
}
}) : ({
user:{
gists:{
edges:[
{
cursor:"MOCKED_CURSOR"
},
],
totalCount:faker.random.number(100),
nodes:[
{

View File

@@ -5,13 +5,26 @@
//Check if plugin is enabled and requirements are met
if ((!enabled)||(!q.gists))
return null
//Retrieve gists from graphql api
console.debug(`metrics/compute/${login}/plugins > gists > querying api`)
const {user:{gists}} = await graphql(queries.gists({login}))
//Query gists from GitHub API
const gists = []
{
//Iterate through gists
console.debug(`metrics/compute/${login}/plugins > gists > processing ${gists.nodes.length} gists`)
let cursor = null
let pushed = 0
do {
console.debug(`metrics/compute/${login}/plugins > gists > retrieving gists after ${cursor}`)
const {user:{gists:{edges, nodes, totalCount}}} = await graphql(queries.gists({login, after:cursor ? `after: "${cursor}"` : ""}))
cursor = edges?.[edges?.length-1]?.cursor
gists.push(...nodes)
gists.totalCount = totalCount
pushed = nodes.length
} while ((pushed)&&(cursor))
console.debug(`metrics/compute/${login}/plugins > gists > loaded ${gists.length} gists`)
}
//Iterate through gists
console.debug(`metrics/compute/${login}/plugins > gists > processing ${gists.length} gists`)
let stargazers = 0, forks = 0, comments = 0, files = 0
for (const gist of gists.nodes) {
for (const gist of gists) {
//Skip forks
if (gist.isFork)
continue

View File

@@ -1,6 +1,9 @@
query Gists {
user(login: "$login") {
gists(last: 100) {
gists($after first: 100, orderBy: {field: UPDATED_AT, direction: DESC}) {
edges {
cursor
}
totalCount
nodes {
stargazerCount