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 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..3ccc1ff2e 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,resourcePath,closed,url}}") case "watchers": q = append(q, "watchers{totalCount}") case "issues":