MCPcopy Create free account
hub / github.com/cli/cli / RepoMilestones

Function RepoMilestones

api/queries_repo.go:1464–1512  ·  view source on GitHub ↗

RepoMilestones fetches milestones in a repository

(client *Client, repo ghrepo.Interface, state string)

Source from the content-addressed store, hash-verified

1462
1463// RepoMilestones fetches milestones in a repository
1464func RepoMilestones(client *Client, repo ghrepo.Interface, state string) ([]RepoMilestone, error) {
1465 type responseData struct {
1466 Repository struct {
1467 Milestones struct {
1468 Nodes []RepoMilestone
1469 PageInfo struct {
1470 HasNextPage bool
1471 EndCursor string
1472 }
1473 } `graphql:"milestones(states: $states, first: 100, after: $endCursor)"`
1474 } `graphql:"repository(owner: $owner, name: $name)"`
1475 }
1476
1477 var states []githubv4.MilestoneState
1478 switch state {
1479 case "open":
1480 states = []githubv4.MilestoneState{"OPEN"}
1481 case "closed":
1482 states = []githubv4.MilestoneState{"CLOSED"}
1483 case "all":
1484 states = []githubv4.MilestoneState{"OPEN", "CLOSED"}
1485 default:
1486 return nil, fmt.Errorf("invalid state: %s", state)
1487 }
1488
1489 variables := map[string]any{
1490 "owner": githubv4.String(repo.RepoOwner()),
1491 "name": githubv4.String(repo.RepoName()),
1492 "states": states,
1493 "endCursor": (*githubv4.String)(nil),
1494 }
1495
1496 var milestones []RepoMilestone
1497 for {
1498 var query responseData
1499 err := client.Query(repo.RepoHost(), "RepositoryMilestoneList", &query, variables)
1500 if err != nil {
1501 return nil, err
1502 }
1503
1504 milestones = append(milestones, query.Repository.Milestones.Nodes...)
1505 if !query.Repository.Milestones.PageInfo.HasNextPage {
1506 break
1507 }
1508 variables["endCursor"] = githubv4.String(query.Repository.Milestones.PageInfo.EndCursor)
1509 }
1510
1511 return milestones, nil
1512}
1513
1514// v1Projects retrieves set of RepoProjects relevant to given repository:
1515// - Projects for repository

Callers 2

Test_RepoMilestonesFunction · 0.85
RepoMetadataFunction · 0.85

Calls 6

ErrorfMethod · 0.65
StringMethod · 0.65
RepoOwnerMethod · 0.65
RepoNameMethod · 0.65
QueryMethod · 0.65
RepoHostMethod · 0.65

Tested by 1

Test_RepoMilestonesFunction · 0.68