MCPcopy Index your code
hub / github.com/cli/cli / RepoAssignableActors

Function RepoAssignableActors

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

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

Callers 1

RepoMetadataFunction · 0.85

Calls 5

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

Tested by

no test coverage detected