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

Function RepoLabels

api/queries_repo.go:1418–1453  ·  view source on GitHub ↗

RepoLabels fetches all the labels in a repository

(client *Client, repo ghrepo.Interface)

Source from the content-addressed store, hash-verified

1416
1417// RepoLabels fetches all the labels in a repository
1418func RepoLabels(client *Client, repo ghrepo.Interface) ([]RepoLabel, error) {
1419 type responseData struct {
1420 Repository struct {
1421 Labels struct {
1422 Nodes []RepoLabel
1423 PageInfo struct {
1424 HasNextPage bool
1425 EndCursor string
1426 }
1427 } `graphql:"labels(first: 100, orderBy: {field: NAME, direction: ASC}, after: $endCursor)"`
1428 } `graphql:"repository(owner: $owner, name: $name)"`
1429 }
1430
1431 variables := map[string]interface{}{
1432 "owner": githubv4.String(repo.RepoOwner()),
1433 "name": githubv4.String(repo.RepoName()),
1434 "endCursor": (*githubv4.String)(nil),
1435 }
1436
1437 var labels []RepoLabel
1438 for {
1439 var query responseData
1440 err := client.Query(repo.RepoHost(), "RepositoryLabelList", &query, variables)
1441 if err != nil {
1442 return nil, err
1443 }
1444
1445 labels = append(labels, query.Repository.Labels.Nodes...)
1446 if !query.Repository.Labels.PageInfo.HasNextPage {
1447 break
1448 }
1449 variables["endCursor"] = githubv4.String(query.Repository.Labels.PageInfo.EndCursor)
1450 }
1451
1452 return labels, nil
1453}
1454
1455type RepoMilestone struct {
1456 ID string

Callers 1

RepoMetadataFunction · 0.85

Calls 5

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

Tested by

no test coverage detected