Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 3 additions & 17 deletions source/plugins/projects/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,17 @@ export default async function({login, data, imports, graphql, q, queries, accoun
//Update limit if repositories projects were specified manually
limit = Math.max(repositories.length, limit)

//Retrieve user owned projects from graphql api
//Retrieve user owned projects from graphql api (ProjectsV2 only)
console.debug(`metrics/compute/${login}/plugins > projects > querying api`)
const {[account]: {projects}} = await graphql(queries.projects["user.legacy"]({login, limit, account}))
const {[account]: {projectsV2}} = await graphql(queries.projects.user({login, limit, account}))
projects.nodes.unshift(...projectsV2.nodes)
projects.totalCount += projectsV2.totalCount
const {[account]: {projectsV2: projects}} = await graphql(queries.projects.user({login, limit, account}))

//Retrieve repositories projects from graphql api
//Retrieve repositories projects from graphql api (ProjectsV2 only)
for (const identifier of repositories) {
//Querying repository project
console.debug(`metrics/compute/${login}/plugins > projects > querying api for ${identifier}`)
const {user, repository, id} = identifier.match(/(?<user>[-\w]+)[/](?<repository>[-\w]+)[/]projects[/](?<id>\d+)/)?.groups ?? {}
let project = null
for (const account of ["user", "organization"]) {
//Try projects beta
try {
project = (await graphql(queries.projects.repository({user, repository, id, account})))[account].repository.projectV2
if (project)
Expand All @@ -36,16 +32,6 @@ export default async function({login, data, imports, graphql, q, queries, accoun
catch (error) {
console.debug(error)
}
//Try projects classic
try {
console.debug(`metrics/compute/${login}/plugins > projects > falling back to projects classic for ${identifier}`)
;({project} = (await graphql(queries.projects["repository.legacy"]({user, repository, id, account})))[account].repository)
if (project)
break
}
catch (error) {
console.debug(error)
}
}
if (!project)
throw new Error(`Could not load project ${user}/${repository}`)
Expand Down
Loading