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

Function RepoAssignableActors

api/queries_repo.go:1285–1347  ·  view source on GitHub ↗

RepoAssignableActors fetches all the assignable actors for a repository on GitHub hosts that support Actor assignees.

(client *Client, repo ghrepo.Interface)

Source from the content-addressed store, hash-verified

1283// RepoAssignableActors fetches all the assignable actors for a repository on
1284// GitHub hosts that support Actor assignees.
1285func RepoAssignableActors(client *Client, repo ghrepo.Interface) ([]AssignableActor, error) {
1286 type responseData struct {
1287 Repository struct {
1288 SuggestedActors struct {
1289 Nodes []struct {
1290 User struct {
1291 ID string
1292 Login string
1293 Name string
1294 TypeName string `graphql:"__typename"`
1295 } `graphql:"... on User"`
1296 Bot struct {
1297 ID string
1298 Login string
1299 TypeName string `graphql:"__typename"`
1300 } `graphql:"... on Bot"`
1301 }
1302 PageInfo struct {
1303 HasNextPage bool
1304 EndCursor string
1305 }
1306 } `graphql:"suggestedActors(first: 100, after: $endCursor, capabilities: CAN_BE_ASSIGNED)"`
1307 } `graphql:"repository(owner: $owner, name: $name)"`
1308 }
1309
1310 variables := map[string]interface{}{
1311 "owner": githubv4.String(repo.RepoOwner()),
1312 "name": githubv4.String(repo.RepoName()),
1313 "endCursor": (*githubv4.String)(nil),
1314 }
1315
1316 var actors []AssignableActor
1317 for {
1318 var query responseData
1319 err := client.Query(repo.RepoHost(), "RepositoryAssignableActors", &query, variables)
1320 if err != nil {
1321 return nil, err
1322 }
1323
1324 for _, node := range query.Repository.SuggestedActors.Nodes {
1325 if node.User.TypeName == "User" {
1326 actor := AssignableUser{
1327 id: node.User.ID,
1328 login: node.User.Login,
1329 name: node.User.Name,
1330 }
1331 actors = append(actors, actor)
1332 } else if node.Bot.TypeName == "Bot" {
1333 actor := AssignableBot{
1334 id: node.Bot.ID,
1335 login: node.Bot.Login,
1336 }
1337 actors = append(actors, actor)
1338 }
1339 }
1340
1341 if !query.Repository.SuggestedActors.PageInfo.HasNextPage {
1342 break

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