feat: filter users by github user id in the users list CLI command (#17029)

Add the `--github-user-id` option to `coder users list`, which makes the
command only return users with a matching GitHub user id. This will
enable https://github.com/coder/start-workspace-action to find a Coder
user that corresponds to a GitHub user requesting to start a workspace.
This commit is contained in:
Hugo Dutka
2025-03-21 13:30:47 +01:00
committed by GitHub
parent 69ba27e347
commit a71aa202dc
11 changed files with 124 additions and 30 deletions

View File

@ -19,6 +19,7 @@ func (r *RootCmd) userList() *serpent.Command {
cliui.JSONFormat(),
)
client := new(codersdk.Client)
var githubUserID int64
cmd := &serpent.Command{
Use: "list",
@ -27,8 +28,23 @@ func (r *RootCmd) userList() *serpent.Command {
serpent.RequireNArgs(0),
r.InitClient(client),
),
Options: serpent.OptionSet{
{
Name: "github-user-id",
Description: "Filter users by their GitHub user ID.",
Default: "",
Flag: "github-user-id",
Required: false,
Value: serpent.Int64Of(&githubUserID),
},
},
Handler: func(inv *serpent.Invocation) error {
res, err := client.Users(inv.Context(), codersdk.UsersRequest{})
req := codersdk.UsersRequest{}
if githubUserID != 0 {
req.Search = fmt.Sprintf("github_com_user_id:%d", githubUserID)
}
res, err := client.Users(inv.Context(), req)
if err != nil {
return err
}