From 9e1f9d610101093551707447472c0cdcb26dee89 Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Sun, 21 Apr 2024 11:00:19 +0100 Subject: [PATCH 1/4] Include `projectsV2` in GraphQL query Signed-off-by: Babak K. Shandiz --- api/queries_repo.go | 3 +++ api/query_builder.go | 3 +++ 2 files changed, 6 insertions(+) diff --git a/api/queries_repo.go b/api/queries_repo.go index 01f85354f..32cb5ff3b 100644 --- a/api/queries_repo.go +++ b/api/queries_repo.go @@ -124,6 +124,9 @@ type Repository struct { Projects struct { Nodes []RepoProject } + ProjectsV2 struct { + Nodes []ProjectV2 + } // pseudo-field that keeps track of host name of this repo hostname string diff --git a/api/query_builder.go b/api/query_builder.go index 9c8aaac17..d2b503e48 100644 --- a/api/query_builder.go +++ b/api/query_builder.go @@ -442,6 +442,7 @@ var RepositoryFields = []string{ "assignableUsers", "mentionableUsers", "projects", + "projectsV2", // "branchProtectionRules", // too complex to expose // "collaborators", // does it make sense to expose without affiliation filter? @@ -487,6 +488,8 @@ func RepositoryGraphQL(fields []string) string { q = append(q, "mentionableUsers(first:100){nodes{id,login,name}}") case "projects": q = append(q, "projects(first:100,states:OPEN){nodes{id,name,number,body,resourcePath}}") + case "projectsV2": + q = append(q, "projectsV2(first:100,query:\"is:open\"){nodes{id,number,title,readme,url}}") case "watchers": q = append(q, "watchers{totalCount}") case "issues": From b294f6b3e195cecc9c175c2fe9e017f3894d787a Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Sun, 21 Apr 2024 11:05:57 +0100 Subject: [PATCH 2/4] Include `URL` in `ProjectV2` type Signed-off-by: Babak K. Shandiz --- api/queries_projects_v2.go | 1 + 1 file changed, 1 insertion(+) diff --git a/api/queries_projects_v2.go b/api/queries_projects_v2.go index 958be6616..f1f07af7a 100644 --- a/api/queries_projects_v2.go +++ b/api/queries_projects_v2.go @@ -23,6 +23,7 @@ type ProjectV2 struct { Number int `json:"number"` ResourcePath string `json:"resourcePath"` Closed bool `json:"closed"` + URL string `json:"url"` } // UpdateProjectV2Items uses the addProjectV2ItemById and the deleteProjectV2Item mutations From 985dee0e05461583221616a25e2faf8f52311705 Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Fri, 26 Apr 2024 22:59:01 +0100 Subject: [PATCH 3/4] Match query fields with `ProjectV2` type Co-authored-by: Andy Feller --- api/query_builder.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/query_builder.go b/api/query_builder.go index d2b503e48..d9876cc0a 100644 --- a/api/query_builder.go +++ b/api/query_builder.go @@ -489,7 +489,7 @@ func RepositoryGraphQL(fields []string) string { case "projects": q = append(q, "projects(first:100,states:OPEN){nodes{id,name,number,body,resourcePath}}") case "projectsV2": - q = append(q, "projectsV2(first:100,query:\"is:open\"){nodes{id,number,title,readme,url}}") + q = append(q, "projectsV2(first:100,query:\"is:open\"){nodes{id,number,resourcePath,closed,url}}") case "watchers": q = append(q, "watchers{totalCount}") case "issues": From d611ed4bf0b81b24fc497b1a010e37f59454d4bf Mon Sep 17 00:00:00 2001 From: Andy Feller Date: Mon, 29 Apr 2024 07:42:53 -0400 Subject: [PATCH 4/4] Add missing title field for projectv2 --- api/query_builder.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/query_builder.go b/api/query_builder.go index d9876cc0a..3ccc1ff2e 100644 --- a/api/query_builder.go +++ b/api/query_builder.go @@ -489,7 +489,7 @@ func RepositoryGraphQL(fields []string) string { case "projects": q = append(q, "projects(first:100,states:OPEN){nodes{id,name,number,body,resourcePath}}") case "projectsV2": - q = append(q, "projectsV2(first:100,query:\"is:open\"){nodes{id,number,resourcePath,closed,url}}") + q = append(q, "projectsV2(first:100,query:\"is:open\"){nodes{id,number,title,resourcePath,closed,url}}") case "watchers": q = append(q, "watchers{totalCount}") case "issues":