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

Function RepoAssignableActors

api/queries_repo.go:1288–1350  ·  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

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