Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/azdo.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ Work seamlessly with Azure DevOps from the command line.
* [azdo project](./azdo_project.md)
* [azdo repo](./azdo_repo.md)

### Security commands
* [azdo security](./azdo_security.md)

### Alias commands
* [azdo co](./azdo_co.md)

Expand Down
20 changes: 20 additions & 0 deletions docs/azdo_help_reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -369,6 +369,26 @@ Configure default repository for this directory
-v, --view view the current default repository
````

## `azdo security <command> [flags]`

Work with Azure DevOps security.

### `azdo security group`

Manage security groups

#### `azdo security group list [ORGANIZATION[/PROJECT]] [flags]`

List security groups

```
-f, --filter string Case-insensitive regex to filter groups by name (e.g. 'dev.*team'). Invalid patterns will result in an error
-q, --jq expression Filter JSON output using a jq expression
--json fields Output JSON with the specified fields
--subject-types strings List of subject types to include (comma-separated). Values must not be empty or contain only whitespace.
-t, --template string Format JSON output using a Go template; see "azdo help formatting"
````


### See also

Expand Down
8 changes: 8 additions & 0 deletions docs/azdo_security.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## azdo security
Work with Azure DevOps security features.
### Available commands
* [azdo security group](./azdo_security_group.md)

### See also

* [azdo](./azdo.md)
8 changes: 8 additions & 0 deletions docs/azdo_security_group.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## azdo security group
Manage security groups in Azure DevOps.
### Available commands
* [azdo security group list](./azdo_security_group_list.md)

### See also

* [azdo security](./azdo_security.md)
45 changes: 45 additions & 0 deletions docs/azdo_security_group_list.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
## azdo security group list
```
azdo security group list [ORGANIZATION[/PROJECT]] [flags]
```
List all security groups within a given project or organization.
### Options


* `-f`, `--filter` `string`

Case-insensitive regex to filter groups by name (e.g. &#39;dev.*team&#39;). Invalid patterns will result in an error

* `-q`, `--jq` `expression`

Filter JSON output using a jq expression

* `--json` `fields`

Output JSON with the specified fields

* `--subject-types` `strings`

List of subject types to include (comma-separated). Values must not be empty or contain only whitespace.

* `-t`, `--template` `string`

Format JSON output using a Go template; see &#34;azdo help formatting&#34;


### Examples

```bash
# List all security groups in the default organization
azdo security group list

# List all groups matching a regex pattern
azdo security group list --filter 'dev.*team'

# List groups filtering by regex and restricting by subject types
azdo security group list --filter '-qa$' --subject-types vssgp,aadgp
```

### See also

* [azdo security group](./azdo_security_group.md)
7 changes: 7 additions & 0 deletions internal/cmd/root/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import (
"github.com/tmeckel/azdo-cli/internal/cmd/pr"
"github.com/tmeckel/azdo-cli/internal/cmd/project"
"github.com/tmeckel/azdo-cli/internal/cmd/repo"
"github.com/tmeckel/azdo-cli/internal/cmd/security"
"github.com/tmeckel/azdo-cli/internal/cmd/util"
versionCmd "github.com/tmeckel/azdo-cli/internal/cmd/version"
"github.com/tmeckel/azdo-cli/internal/validation"
Expand Down Expand Up @@ -75,13 +76,19 @@ func NewCmdRoot(ctx util.CmdContext, version, buildDate string) (*cobra.Command,
Title: "Core commands",
})

cmd.AddGroup(&cobra.Group{
ID: "security",
Title: "Security commands",
})

cmd.AddCommand(versionCmd.NewCmdVersion(ctx, version, buildDate))
cmd.AddCommand(auth.NewCmdAuth(ctx))
cmd.AddCommand(config.NewCmdConfig(ctx))
cmd.AddCommand(project.NewCmdProject(ctx))
cmd.AddCommand(repo.NewCmdRepo(ctx))
cmd.AddCommand(pr.NewCmdPR(ctx))
cmd.AddCommand(graph.NewCmdGraph(ctx))
cmd.AddCommand(security.NewCmd(ctx))

// Help topics
var referenceCmd *cobra.Command
Expand Down
23 changes: 23 additions & 0 deletions internal/cmd/security/group/group.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package group

import (
"github.com/spf13/cobra"
"github.com/tmeckel/azdo-cli/internal/cmd/security/group/list"
"github.com/tmeckel/azdo-cli/internal/cmd/util"
)

func NewCmd(ctx util.CmdContext) *cobra.Command {
cmd := &cobra.Command{
Use: "group",
Short: "Manage security groups",
Long: "Manage security groups in Azure DevOps.",
Aliases: []string{
"g",
"grp",
},
}

cmd.AddCommand(list.NewCmd(ctx))

return cmd
}
Loading
Loading