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

Function RepoAssignableUsers

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

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