Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support yaml output #241

Merged
merged 13 commits into from
Nov 26, 2024
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
2 changes: 1 addition & 1 deletion cmd/harbor/root/artifact/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ func Artifact() *cobra.Command {

cmd.AddCommand(
ListArtifactCommand(),
InfoArtifactCommmand(),
ViewArtifactCommmand(),
DeleteArtifactCommand(),
ScanArtifactCommand(),
ArtifactTagsCmd(),
Expand Down
39 changes: 0 additions & 39 deletions cmd/harbor/root/artifact/info.go

This file was deleted.

25 changes: 18 additions & 7 deletions cmd/harbor/root/artifact/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
artifactViews "github.com/goharbor/harbor-cli/pkg/views/artifact/list"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)

func ListArtifactCommand() *cobra.Command {
Expand All @@ -19,21 +20,31 @@ func ListArtifactCommand() *cobra.Command {
Args: cobra.MaximumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
var err error
var resp artifact.ListArtifactsOK
var artifacts artifact.ListArtifactsOK
var projectName, repoName string

if len(args) > 0 {
projectName, repoName := utils.ParseProjectRepo(args[0])
resp, err = api.ListArtifact(projectName, repoName, opts)
projectName, repoName = utils.ParseProjectRepo(args[0])
} else {
projectName := prompt.GetProjectNameFromUser()
repoName := prompt.GetRepoNameFromUser(projectName)
resp, err = api.ListArtifact(projectName, repoName, opts)
projectName = prompt.GetProjectNameFromUser()
repoName = prompt.GetRepoNameFromUser(projectName)
}

artifacts, err = api.ListArtifact(projectName, repoName, opts)

if err != nil {
log.Errorf("failed to list artifacts: %v", err)
}
artifactViews.ListArtifacts(resp.Payload)

FormatFlag := viper.GetString("output-format")
if FormatFlag != "" {
err = utils.PrintFormat(artifacts, FormatFlag)
if err != nil {
log.Error(err)
}
} else {
artifactViews.ListArtifacts(artifacts.Payload)
}
},
}

Expand Down
31 changes: 23 additions & 8 deletions cmd/harbor/root/artifact/tags.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ import (
"github.com/goharbor/harbor-cli/pkg/prompt"
"github.com/goharbor/harbor-cli/pkg/utils"
"github.com/goharbor/harbor-cli/pkg/views/artifact/tags/create"
"github.com/goharbor/harbor-cli/pkg/views/artifact/tags/list"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)

func ArtifactTagsCmd() *cobra.Command {
Expand Down Expand Up @@ -62,22 +64,35 @@ func ListTagsCmd() *cobra.Command {
Example: `harbor artifact tags list <project>/<repository>/<reference>`,
Run: func(cmd *cobra.Command, args []string) {
var err error
var tags *artifact.ListTagsOK
var projectName, repoName, reference string

var resp artifact.ListTagsOK
if len(args) > 0 {
projectName, repoName, reference := utils.ParseProjectRepoReference(args[0])
resp, err = api.ListTags(projectName, repoName, reference)
projectName, repoName, reference = utils.ParseProjectRepoReference(args[0])
} else {
projectName := prompt.GetProjectNameFromUser()
repoName := prompt.GetRepoNameFromUser(projectName)
reference := prompt.GetReferenceFromUser(repoName, projectName)
resp, err = api.ListTags(projectName, repoName, reference)
projectName = prompt.GetProjectNameFromUser()
repoName = prompt.GetRepoNameFromUser(projectName)
reference = prompt.GetReferenceFromUser(repoName, projectName)
}

tags, err = api.ListTags(projectName, repoName, reference)

if err != nil {
log.Errorf("failed to list tags: %v", err)
return
}

FormatFlag := viper.GetString("output-format")
if FormatFlag != "" {
err = utils.PrintFormat(tags, FormatFlag)
if err != nil {
log.Error(err)
return
}
} else {
list.ListTags(tags.Payload)
}

log.Info(resp.Payload)
},
}

Expand Down
55 changes: 55 additions & 0 deletions cmd/harbor/root/artifact/view.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
package artifact

import (
"github.com/goharbor/go-client/pkg/sdk/v2.0/client/artifact"
"github.com/goharbor/harbor-cli/pkg/api"
"github.com/goharbor/harbor-cli/pkg/prompt"
"github.com/goharbor/harbor-cli/pkg/utils"
"github.com/goharbor/harbor-cli/pkg/views/artifact/view"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)

func ViewArtifactCommmand() *cobra.Command {

cmd := &cobra.Command{
Use: "view",
Short: "Get information of an artifact",
Long: `Get information of an artifact`,
Example: `harbor artifact view <project>/<repository>/<reference>`,
Run: func(cmd *cobra.Command, args []string) {
var err error
var projectName, repoName, reference string
var artifact *artifact.GetArtifactOK

if len(args) > 0 {
projectName, repoName, reference = utils.ParseProjectRepoReference(args[0])
} else {
projectName = prompt.GetProjectNameFromUser()
repoName = prompt.GetRepoNameFromUser(projectName)
reference = prompt.GetReferenceFromUser(repoName, projectName)
}

artifact, err = api.ViewArtifact(projectName, repoName, reference)

if err != nil {
log.Errorf("failed to get info of an artifact: %v", err)
}

FormatFlag := viper.GetString("output-format")
if FormatFlag != "" {
err = utils.PrintFormat(artifact, FormatFlag)
if err != nil {
log.Error(err)
return
}
} else {
view.ViewArtifact(artifact.Payload)
}

},
}

return cmd
}
10 changes: 6 additions & 4 deletions cmd/harbor/root/project/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,13 @@ func ListProjectCommand() *cobra.Command {
}
FormatFlag := viper.GetString("output-format")
if FormatFlag != "" {
utils.PrintPayloadInJSONFormat(projects)
return
err = utils.PrintFormat(projects, FormatFlag)
if err != nil {
log.Error(err)
}
} else {
list.ListProjects(projects.Payload)
}

list.ListProjects(projects.Payload)
},
}

Expand Down
9 changes: 6 additions & 3 deletions cmd/harbor/root/project/logs.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,15 @@ func LogsProjectCommmand() *cobra.Command {
if err != nil {
log.Fatalf("failed to get project logs: %v", err)
}
auditLog.LogsProject(resp.Payload)

FormatFlag := viper.GetString("output-format")
if FormatFlag != "" {
utils.PrintPayloadInJSONFormat(resp)
return
err = utils.PrintFormat(resp, FormatFlag)
if err != nil {
log.Error(err)
}
} else {
auditLog.LogsProject(resp.Payload)
}

},
Expand Down
25 changes: 22 additions & 3 deletions cmd/harbor/root/project/view.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
package project

import (
"github.com/goharbor/go-client/pkg/sdk/v2.0/client/project"
"github.com/goharbor/harbor-cli/pkg/api"
"github.com/goharbor/harbor-cli/pkg/prompt"
"github.com/goharbor/harbor-cli/pkg/utils"
"github.com/goharbor/harbor-cli/pkg/views/project/view"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)

// GetProjectCommand creates a new `harbor get project` command
Expand All @@ -16,16 +20,31 @@ func ViewCommand() *cobra.Command {
Args: cobra.MaximumNArgs(1),
Run: func(cmd *cobra.Command, args []string) {
var err error
var projectName string
var project *project.GetProjectOK

if len(args) > 0 {
err = api.GetProject(args[0])
projectName = args[0]
} else {
projectName := prompt.GetProjectNameFromUser()
err = api.GetProject(projectName)
projectName = prompt.GetProjectNameFromUser()
}

project, err = api.GetProject(projectName)

if err != nil {
log.Errorf("failed to get project: %v", err)
return
}

FormatFlag := viper.GetString("output-format")
if FormatFlag != "" {
err = utils.PrintFormat(project, FormatFlag)
if err != nil {
log.Error(err)
return
}
} else {
view.ViewProjects(project.Payload)
}

},
Expand Down
2 changes: 1 addition & 1 deletion cmd/harbor/root/registry/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ func Registry() *cobra.Command {
}
cmd.AddCommand(
CreateRegistryCommand(),
InfoRegistryCommand(),
ViewRegistryCommand(),
DeleteRegistryCommand(),
ListRegistryCommand(),
UpdateRegistryCommand(),
Expand Down
34 changes: 0 additions & 34 deletions cmd/harbor/root/registry/info.go

This file was deleted.

9 changes: 6 additions & 3 deletions cmd/harbor/root/registry/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,13 @@ func ListRegistryCommand() *cobra.Command {
}
FormatFlag := viper.GetString("output-format")
if FormatFlag != "" {
utils.PrintPayloadInJSONFormat(registry)
return
err = utils.PrintFormat(registry, FormatFlag)
if err != nil {
log.Error(err)
}
} else {
list.ListRegistry(registry.Payload)
}
list.ListRegistry(registry.Payload)
},
}

Expand Down
Loading