Skip to content
Open
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: 1 addition & 2 deletions cmd/harbor/root/artifact/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"github.com/goharbor/harbor-cli/pkg/api"
"github.com/goharbor/harbor-cli/pkg/prompt"
"github.com/goharbor/harbor-cli/pkg/utils"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)

Expand All @@ -39,7 +38,7 @@ func DeleteArtifactCommand() *cobra.Command {
} else {
projectName, err = prompt.GetProjectNameFromUser()
if err != nil {
log.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
return fmt.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
}
repoName = prompt.GetRepoNameFromUser(projectName)
reference = prompt.GetReferenceFromUser(repoName, projectName)
Expand Down
11 changes: 5 additions & 6 deletions cmd/harbor/root/artifact/scan.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ import (
"github.com/goharbor/harbor-cli/pkg/api"
"github.com/goharbor/harbor-cli/pkg/prompt"
"github.com/goharbor/harbor-cli/pkg/utils"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)

Expand Down Expand Up @@ -79,29 +78,29 @@ func StopScanArtifactCommand() *cobra.Command {
Short: "Stop a scan of an artifact",
Long: `Stop a scan of an artifact in Harbor Repository`,
Example: `harbor artifact scan stop <project>/<repository>/<reference>`,
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
var err error
var projectName, repoName, reference string

if len(args) > 0 {
projectName, repoName, reference, err = utils.ParseProjectRepoReference(args[0])
if err != nil {
log.Errorf("failed to parse project/repo/reference: %v", err)
return fmt.Errorf("failed to parse project/repo/reference: %v", err)
}
} else {
var projectName string
projectName, err = prompt.GetProjectNameFromUser()
if err != nil {
log.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
return fmt.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
}
repoName = prompt.GetRepoNameFromUser(projectName)
reference = prompt.GetReferenceFromUser(repoName, projectName)
}

err = api.StopScanArtifact(projectName, repoName, reference)
if err != nil {
log.Errorf("failed to stop scan of artifact: %v", err)
return fmt.Errorf("failed to stop scan of artifact: %v", err)
}
return nil
},
}
return cmd
Expand Down
36 changes: 19 additions & 17 deletions cmd/harbor/root/artifact/tags.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
package artifact

import (
"fmt"

"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/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"
)
Expand All @@ -46,29 +47,30 @@ func CreateTagsCmd() *cobra.Command {
Use: "create",
Short: "Create a tag of an artifact",
Example: `harbor artifact tags create <project>/<repository>/<reference> <tag>`,
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
var err error
var projectName, repoName, reference string
var tagName string
if len(args) > 0 {
projectName, repoName, reference, err = utils.ParseProjectRepoReference(args[0])
if err != nil {
log.Errorf("failed to parse project/repo/reference: %v", err)
return fmt.Errorf("failed to parse project/repo/reference: %v", err)
}
tagName = args[1]
} else {
projectName, err = prompt.GetProjectNameFromUser()
if err != nil {
log.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
return fmt.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
}
repoName = prompt.GetRepoNameFromUser(projectName)
reference = prompt.GetReferenceFromUser(repoName, projectName)
create.CreateTagView(&tagName)
}
err = api.CreateTag(projectName, repoName, reference, tagName)
if err != nil {
log.Errorf("failed to create tag: %v", err)
return fmt.Errorf("failed to create tag: %v", err)
}
return nil
},
}

Expand All @@ -80,45 +82,44 @@ func ListTagsCmd() *cobra.Command {
Use: "list",
Short: "List tags of an artifact",
Example: `harbor artifact tags list <project>/<repository>/<reference>`,
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
var err error
var tags *artifact.ListTagsOK
var projectName, repoName, reference string

if len(args) > 0 {
projectName, repoName, reference, err = utils.ParseProjectRepoReference(args[0])
if err != nil {
log.Errorf("failed to parse project/repo/reference: %v", err)
return fmt.Errorf("failed to parse project/repo/reference: %v", err)
}
} else {
projectName, err = prompt.GetProjectNameFromUser()
if err != nil {
log.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
return fmt.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
}
repoName = prompt.GetRepoNameFromUser(projectName)
if repoName == "" {
return
return nil
}
reference = prompt.GetReferenceFromUser(repoName, projectName)
}

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

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

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

Expand All @@ -130,29 +131,30 @@ func DeleteTagsCmd() *cobra.Command {
Use: "delete",
Short: "Delete a tag of an artifact",
Example: `harbor artifact tags delete <project>/<repository>/<reference> <tag>`,
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
var err error
var projectName, repoName, reference string
var tagName string
if len(args) > 0 {
projectName, repoName, reference, err = utils.ParseProjectRepoReference(args[0])
if err != nil {
log.Errorf("failed to parse project/repo/reference: %v", err)
return fmt.Errorf("failed to parse project/repo/reference: %v", err)
}
tagName = args[1]
} else {
projectName, err = prompt.GetProjectNameFromUser()
if err != nil {
log.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
return fmt.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
}
repoName = prompt.GetRepoNameFromUser(projectName)
reference = prompt.GetReferenceFromUser(repoName, projectName)
tagName = prompt.GetTagFromUser(repoName, projectName, reference)
}
err = api.DeleteTag(projectName, repoName, reference, tagName)
if err != nil {
log.Errorf("failed to delete tag: %v", err)
return fmt.Errorf("failed to delete tag: %v", err)
}
return nil
},
}

Expand Down
22 changes: 10 additions & 12 deletions cmd/harbor/root/artifact/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,13 @@
package artifact

import (
"fmt"

"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"
)
Expand All @@ -30,51 +31,48 @@ func ViewArtifactCommmand() *cobra.Command {
Short: "Get information of an artifact",
Long: `Get information of an artifact`,
Example: `harbor artifact view <project>/<repository>:<tag> OR harbor artifact view <project>/<repository>@<digest>`,
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
var err error
var projectName, repoName, reference string
var artifact *artifact.GetArtifactOK

if len(args) > 0 {
projectName, repoName, reference, err = utils.ParseProjectRepoReference(args[0])
if err != nil {
log.Errorf("failed to parse project/repo/reference: %v", err)
return fmt.Errorf("failed to parse project/repo/reference: %v", err)
}
} else {
projectName, err = prompt.GetProjectNameFromUser()
if err != nil {
log.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
return
return fmt.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
}
repoName = prompt.GetRepoNameFromUser(projectName)
reference = prompt.GetReferenceFromUser(repoName, projectName)
}

if reference == "" {
if len(args) > 0 {
log.Errorf("Invalid artifact reference format: %s", args[0])
} else {
log.Error("Invalid artifact reference format: no arguments provided")
return fmt.Errorf("invalid artifact reference format: %s", args[0])
}
return fmt.Errorf("invalid artifact reference format: no arguments provided")
}

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

if err != nil {
log.Errorf("failed to get info of an artifact: %v", err)
return
return fmt.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
return err
}
} else {
view.ViewArtifact(artifact.Payload)
}
return nil
},
}

Expand Down
13 changes: 7 additions & 6 deletions cmd/harbor/root/repository/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,11 @@
package repository

import (
"fmt"

"github.com/goharbor/harbor-cli/pkg/api"
"github.com/goharbor/harbor-cli/pkg/prompt"
"github.com/goharbor/harbor-cli/pkg/utils"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
)

Expand All @@ -27,27 +28,27 @@ func RepoDeleteCmd() *cobra.Command {
Short: "Delete a repository",
Example: ` harbor repository delete [project_name]/[repository_name]`,
Long: `Delete a repository within a project in Harbor`,
Run: func(cmd *cobra.Command, args []string) {
RunE: func(cmd *cobra.Command, args []string) error {
var err error
var projectName string
var repoName string
if len(args) > 0 {
projectName, repoName, err = utils.ParseProjectRepo(args[0])
if err != nil {
log.Errorf("failed to parse project/repo: %v", err)
return
return fmt.Errorf("failed to parse project/repo: %v", err)
}
} else {
projectName, err = prompt.GetProjectNameFromUser()
if err != nil {
log.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
return fmt.Errorf("failed to get project name: %v", utils.ParseHarborErrorMsg(err))
}
repoName = prompt.GetRepoNameFromUser(projectName)
}
err = api.RepoDelete(projectName, repoName, false)
if err != nil {
log.Errorf("failed to delete repository: %v", err)
return fmt.Errorf("failed to delete repository: %v", err)
}
return nil
},
}
return cmd
Expand Down
Loading