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

Function RepoAssignableUsers

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

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