MCPcopy
hub / github.com/cli/cli / OrganizationProjectsV2

Function OrganizationProjectsV2

api/queries_projects_v2.go:208–244  ·  view source on GitHub ↗

OrganizationProjectsV2 fetches all open projectsV2 for an organization.

(client *Client, repo ghrepo.Interface)

Source from the content-addressed store, hash-verified

206
207// OrganizationProjectsV2 fetches all open projectsV2 for an organization.
208func OrganizationProjectsV2(client *Client, repo ghrepo.Interface) ([]ProjectV2, error) {
209 type responseData struct {
210 Organization struct {
211 ProjectsV2 struct {
212 Nodes []ProjectV2
213 PageInfo struct {
214 HasNextPage bool
215 EndCursor string
216 }
217 } `graphql:"projectsV2(first: 100, orderBy: {field: TITLE, direction: ASC}, after: $endCursor, query: $query)"`
218 } `graphql:"organization(login: $owner)"`
219 }
220
221 variables := map[string]interface{}{
222 "owner": githubv4.String(repo.RepoOwner()),
223 "endCursor": (*githubv4.String)(nil),
224 "query": githubv4.String("is:open"),
225 }
226
227 var projectsV2 []ProjectV2
228 for {
229 var query responseData
230 err := client.Query(repo.RepoHost(), "OrganizationProjectV2List", &query, variables)
231 if err != nil {
232 return nil, err
233 }
234
235 projectsV2 = append(projectsV2, query.Organization.ProjectsV2.Nodes...)
236
237 if !query.Organization.ProjectsV2.PageInfo.HasNextPage {
238 break
239 }
240 variables["endCursor"] = githubv4.String(query.Organization.ProjectsV2.PageInfo.EndCursor)
241 }
242
243 return projectsV2, nil
244}
245
246// RepoProjectsV2 fetches all open projectsV2 for a repository.
247func RepoProjectsV2(client *Client, repo ghrepo.Interface) ([]ProjectV2, error) {

Callers 1

v2ProjectsFunction · 0.85

Calls 4

RepoOwnerMethod · 0.65
QueryMethod · 0.65
RepoHostMethod · 0.65
StringMethod · 0.45

Tested by

no test coverage detected