`add-team` subcommand only considers first page of identity provider (IdP) groups and does not paginate
- Dominant language
- C#
- Stars
- 478
- Forks
- 146
- Avg merge
- 7d 21h
- Merged PRs (30d)
- 2
Description
When using the `create-team` subcommand to create a GitHub team linked to an identity provider (IdP) group, the CLI [only looks](https://github.com/github/gh-gei/blob/c8ff06a3a59dd468b1a176f9d406c98041e6080f/src/Octoshift/Services/GithubApi.cs#L514) at the first 30 IdP groups returned in the first page, and doesn't paginate to see the full list of IdP groups.
This can mean that the command fails with a confusing error, even though the IdP group does in fact exist:
```
[2023-06-13 19:58:19] [ERROR] System.InvalidOperationException: Sequence contains no matching element
at System.Linq.ThrowHelper.ThrowNoMatchException()
at System.Linq.Enumerable.Single[TSource](IEnumerable`1 , Func`2 )
at OctoshiftCLI.Services.GithubApi.GetIdpGroupId(String org, String groupName)
at OctoshiftCLI.Commands.CreateTeam.CreateTeamCommandHandler.Handle(CreateTeamCommandArgs args)
at OctoshiftCLI.Extensions.CommandExtensions.RunHandler[TArgs,THandler](TArgs args, ServiceProvider sp, CommandBase`2 command)
at OctoshiftCLI.Extensions.CommandExtensions.<>c__DisplayClass1_0`3.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Invocation.AnonymousCommandHandler.InvokeAsync(InvocationContext )
at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<b__18_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<b__0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<b__5_0>d.MoveNext()
--- End of stack trace from previous location ---
at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<b__0>d.MoveNext()
```
We should add automatic pagination here so we can look at all IdP groups when trying to find one that matches the specified name.
See https://github.com/github/gh-gei/issues/45.
Contributor guide
Assessment
This issue has not been assessed yet.