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

Function RepoAssignableUsers

api/queries_repo.go:1234–1281  ·  view source on GitHub ↗

RepoAssignableUsers fetches all the assignable users for a repository

(client *Client, repo ghrepo.Interface)

Source from the content-addressed store, hash-verified

1232
1233// RepoAssignableUsers fetches all the assignable users for a repository
1234func RepoAssignableUsers(client *Client, repo ghrepo.Interface) ([]AssignableUser, error) {
1235 type responseData struct {
1236 Repository struct {
1237 AssignableUsers struct {
1238 Nodes []struct {
1239 ID string
1240 Login string
1241 Name string
1242 }
1243 PageInfo struct {
1244 HasNextPage bool
1245 EndCursor string
1246 }
1247 } `graphql:"assignableUsers(first: 100, after: $endCursor)"`
1248 } `graphql:"repository(owner: $owner, name: $name)"`
1249 }
1250
1251 variables := map[string]interface{}{
1252 "owner": githubv4.String(repo.RepoOwner()),
1253 "name": githubv4.String(repo.RepoName()),
1254 "endCursor": (*githubv4.String)(nil),
1255 }
1256
1257 var users []AssignableUser
1258 for {
1259 var query responseData
1260 err := client.Query(repo.RepoHost(), "RepositoryAssignableUsers", &query, variables)
1261 if err != nil {
1262 return nil, err
1263 }
1264
1265 for _, node := range query.Repository.AssignableUsers.Nodes {
1266 user := AssignableUser{
1267 id: node.ID,
1268 login: node.Login,
1269 name: node.Name,
1270 }
1271
1272 users = append(users, user)
1273 }
1274 if !query.Repository.AssignableUsers.PageInfo.HasNextPage {
1275 break
1276 }
1277 variables["endCursor"] = githubv4.String(query.Repository.AssignableUsers.PageInfo.EndCursor)
1278 }
1279
1280 return users, nil
1281}
1282
1283// RepoAssignableActors fetches all the assignable actors for a repository on
1284// GitHub hosts that support Actor assignees.

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