diff --git a/.github/workflows/package-audit.yaml b/.github/workflows/package-audit.yaml new file mode 100644 index 00000000..04d42a98 --- /dev/null +++ b/.github/workflows/package-audit.yaml @@ -0,0 +1,18 @@ +name: Package Auditing + +on: + pull_request: + types: [opened, synchronize] + +jobs: + PackageAuditing: + name: Package Auditor (GoVulnCheck) + runs-on: ubuntu-latest + container: + image: golang:1.22.3 + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: GoVulnCheck + run: make govulncheck diff --git a/Makefile b/Makefile index a76f2bc3..9f292f41 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,7 @@ endif GOPATH ?= $(shell $(GO) env GOPATH) GOBIN ?= $(GOPATH)/bin GOSEC ?= $(GOBIN)/gosec +GOVULNCHECK ?= $(GOBIN)/govulncheck GOLINT ?= $(GOBIN)/golint GOFMT ?= $(GOBIN)/gofmt RELOAD ?= $(GOBIN)/CompileDaemon @@ -86,6 +87,14 @@ get-gosec-deps: @ cd $(GOPATH); \ $(GO) install github.com/securego/gosec/v2/cmd/gosec@latest +.PHONY: govulncheck +govulncheck: get-govulncheck-deps ## running GoVulnCheck + @ $(GOVULNCHECK) ./... + +.PHONY: get-govulncheck-deps +get-govulncheck-deps: + @ $(GO) install golang.org/x/vuln/cmd/govulncheck@latest + .PHONY : build build: ## build application @ $(GO) version diff --git a/pkg/cmd/delete/edge_storage/bucket.go b/pkg/cmd/delete/edge_storage/bucket.go index f0a7467d..db6d8c2f 100644 --- a/pkg/cmd/delete/edge_storage/bucket.go +++ b/pkg/cmd/delete/edge_storage/bucket.go @@ -56,6 +56,7 @@ func (b *bucket) runE(cmd *cobra.Command, _ []string) error { } } logger.FInfo(b.factory.IOStreams.Out, "Delete all objects from bucket\n") + logger.FInfo(b.factory.IOStreams.Out, "Deleting objects...") if err := deleteAllObjects(client, ctx, b.name, ""); err != nil { return err } diff --git a/pkg/cmd/root/root.go b/pkg/cmd/root/root.go index 30c54a58..175edd3c 100644 --- a/pkg/cmd/root/root.go +++ b/pkg/cmd/root/root.go @@ -79,11 +79,16 @@ func NewCobraCmd(rootCmd *RootCmd, f *cmdutil.Factory) *cobra.Command { if strings.HasPrefix(configFlag, PREFIX_FLAG) { return msg.ErrorPrefix } - schedule.ExecSchedules(f) - return doPreCommandCheck(cmd, f, PreCmd{ + + if err := doPreCommandCheck(cmd, f, PreCmd{ config: configFlag, token: tokenFlag, - }) + }); err != nil { + return err + } + + schedule.ExecSchedules(f) + return nil }, Example: heredoc.Doc(` $ azion diff --git a/pkg/schedule/bucket.go b/pkg/schedule/bucket.go index e5cdb242..132c7ce3 100644 --- a/pkg/schedule/bucket.go +++ b/pkg/schedule/bucket.go @@ -8,7 +8,7 @@ import ( api "github.com/aziontech/azion-cli/pkg/api/storage" ) -const DELETE_BUCKET = "DeleteBucket" +const DELETE_BUCKET = "DeleteBucket" func TriggerDeleteBucket(f *cmdutil.Factory, name string) error { client := api.NewClient( diff --git a/pkg/schedule/schedule.go b/pkg/schedule/schedule.go index 9a2b93cb..1b617f71 100644 --- a/pkg/schedule/schedule.go +++ b/pkg/schedule/schedule.go @@ -93,21 +93,28 @@ func readFileSchedule() ([]Schedule, error) { } func ExecSchedules(factory *cmdutil.Factory) { + logger.Debug("Exec Schedules") schedules, err := readFileSchedule() if err != nil { logger.Debug("Error while reading the schedule", zap.Error(err)) return - } + } + scheds := []Schedule{} for _, s := range schedules { if CheckIf24HoursPassed(s.Time) { if s.Kind == DELETE_BUCKET { if err := TriggerDeleteBucket(factory, s.Name); err != nil { logger.Debug("Event execution error", zap.Error(err)) + scheds = append(scheds, s) } } } } + + if err := createFileSchedule(scheds); err != nil { + logger.Debug("Scheduling error", zap.Error(err)) + } } // CheckIf24HoursPassed Checks if the current time is before 24 hours after the time 's'.