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

Function RepoAssignableUsers

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

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

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