mirror of
https://github.com/pushbits/cli.git
synced 2025-07-23 03:33:01 +02:00
Add misspell, gocritic, revive
This commit is contained in:
6
Makefile
6
Makefile
@@ -21,9 +21,12 @@ clean:
|
||||
test:
|
||||
stdout=$$(gofumpt -l . 2>&1); if [ "$$stdout" ]; then exit 1; fi
|
||||
go vet ./...
|
||||
misspell $(GO_FILES)
|
||||
gocyclo -over 10 $(GO_FILES)
|
||||
staticcheck ./...
|
||||
errcheck ./...
|
||||
gocritic check -disable='#experimental,#opinionated' -@ifElseChain.minThreshold 3 ./...
|
||||
revive -set_exit_status ./...
|
||||
go test -v -cover ./...
|
||||
gosec -exclude-dir=tests ./...
|
||||
govulncheck ./...
|
||||
@@ -31,8 +34,11 @@ test:
|
||||
|
||||
.PHONY: setup
|
||||
setup:
|
||||
go install github.com/client9/misspell/cmd/misspell@latest
|
||||
go install github.com/fzipp/gocyclo/cmd/gocyclo@latest
|
||||
go install github.com/go-critic/go-critic/cmd/gocritic@latest
|
||||
go install github.com/kisielk/errcheck@latest
|
||||
go install github.com/mgechev/revive@latest
|
||||
go install github.com/securego/gosec/v2/cmd/gosec@latest
|
||||
go install golang.org/x/vuln/cmd/govulncheck@latest
|
||||
go install honnef.co/go/tools/cmd/staticcheck@latest
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// Package main provides the main function as a starting point of this tool.
|
||||
package main
|
||||
|
||||
import (
|
||||
|
@@ -1,7 +1,9 @@
|
||||
// Package api provides low-level functionality to interact with the PushBits API.
|
||||
package api
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"net/url"
|
||||
@@ -54,7 +56,7 @@ func Request(base, endpoint, method, proxy, username, password string, hasBody b
|
||||
if hasBody {
|
||||
reqBody, err := json.Marshal(data)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
reqBodyReader = strings.NewReader(string(reqBody))
|
||||
@@ -62,7 +64,7 @@ func Request(base, endpoint, method, proxy, username, password string, hasBody b
|
||||
|
||||
req, err := http.NewRequest(method, url.String(), reqBodyReader)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
req.Header.Set("Accept", "application/json")
|
||||
@@ -77,19 +79,19 @@ func Request(base, endpoint, method, proxy, username, password string, hasBody b
|
||||
defer handling.Close(resp.Body)
|
||||
|
||||
if resp.StatusCode != http.StatusOK {
|
||||
log.Fatalf("Request failed with HTTP %s.", resp.Status)
|
||||
return nil, fmt.Errorf("request failed with HTTP %s", resp.Status)
|
||||
}
|
||||
|
||||
bodyText, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var obj interface{}
|
||||
|
||||
err = json.Unmarshal(bodyText, &obj)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return obj, nil
|
||||
|
@@ -18,7 +18,7 @@ type createCommand struct {
|
||||
StrictCompatibility bool `long:"compat" help:"Enforce strict compatibility with Gotify"`
|
||||
}
|
||||
|
||||
func (c *createCommand) Run(s *options.Options) error {
|
||||
func (c *createCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
data := map[string]interface{}{
|
||||
|
@@ -19,7 +19,7 @@ type deleteCommand struct {
|
||||
ID uint `arg:"" help:"The ID of the application"`
|
||||
}
|
||||
|
||||
func (c *deleteCommand) Run(s *options.Options) error {
|
||||
func (c *deleteCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
populatedEndpoint := fmt.Sprintf(deleteEndpoint, c.ID)
|
||||
|
@@ -16,7 +16,7 @@ type listCommand struct {
|
||||
options.AuthOptions
|
||||
}
|
||||
|
||||
func (c *listCommand) Run(s *options.Options) error {
|
||||
func (c *listCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
resp, err := api.Get(c.URL, listEndpoint, c.Proxy, c.Username, password)
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// Package application provides commands related to managing applications.
|
||||
package application
|
||||
|
||||
// Command contains all subcommands provided by this package.
|
||||
|
@@ -19,7 +19,7 @@ type showCommand struct {
|
||||
ID uint `arg:"" help:"The ID of the application"`
|
||||
}
|
||||
|
||||
func (c *showCommand) Run(s *options.Options) error {
|
||||
func (c *showCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
populatedEndpoint := fmt.Sprintf(showEndpoint, c.ID)
|
||||
|
@@ -22,7 +22,7 @@ type updateCommand struct {
|
||||
StrictCompatibility bool `long:"compat" help:"Enforce strict compatibility with Gotify"`
|
||||
}
|
||||
|
||||
func (c *updateCommand) Run(s *options.Options) error {
|
||||
func (c *updateCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
if !c.RefreshToken && c.StrictCompatibility {
|
||||
|
@@ -1,3 +1,5 @@
|
||||
// Package buildconfig cpntains variables that are set during compliation.
|
||||
package buildconfig
|
||||
|
||||
// Version of the build.
|
||||
var Version = "unknown"
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// Package commands contains functions that are exposed as dedicated commands of the tool.
|
||||
package commands
|
||||
|
||||
import (
|
||||
@@ -7,9 +8,11 @@ import (
|
||||
"github.com/pushbits/cli/internal/options"
|
||||
)
|
||||
|
||||
// VersionCommand represents the options specific to the version command.
|
||||
type VersionCommand struct{}
|
||||
|
||||
func (c *VersionCommand) Run(s *options.Options) error {
|
||||
// Run is the function for the version command.
|
||||
func (*VersionCommand) Run(_ *options.Options) error {
|
||||
fmt.Printf("pbcli %s\n", buildconfig.Version)
|
||||
|
||||
return nil
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// Package handling provides convenience functions for cleaning up resources.
|
||||
package handling
|
||||
|
||||
import (
|
||||
@@ -6,6 +7,7 @@ import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// Close closes an io resource and prints a warning if that fails.
|
||||
func Close(c io.Closer) {
|
||||
if err := c.Close(); err != nil {
|
||||
log.Warn(err)
|
||||
|
@@ -1,6 +1,7 @@
|
||||
// Package options defines the global options of this tool.
|
||||
package options
|
||||
|
||||
// Options represents the global options.
|
||||
// Options represents the global options of this tool.
|
||||
type Options struct {
|
||||
Verbose bool `short:"v" help:"Show debugging information"`
|
||||
}
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// Package ui provides utilities to interact with the user over the command line.
|
||||
package ui
|
||||
|
||||
import (
|
||||
|
@@ -18,7 +18,7 @@ type createCommand struct {
|
||||
MatrixID string `arg:"" help:"The Matrix ID of the user"`
|
||||
}
|
||||
|
||||
func (c *createCommand) Run(s *options.Options) error {
|
||||
func (c *createCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
newPassword := ui.GetNewPassword(c.Name)
|
||||
|
@@ -19,7 +19,7 @@ type deleteCommand struct {
|
||||
ID uint `arg:"" help:"The ID of the user"`
|
||||
}
|
||||
|
||||
func (c *deleteCommand) Run(s *options.Options) error {
|
||||
func (c *deleteCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
populatedEndpoint := fmt.Sprintf(deleteEndpoint, c.ID)
|
||||
|
@@ -16,7 +16,7 @@ type listCommand struct {
|
||||
options.AuthOptions
|
||||
}
|
||||
|
||||
func (c *listCommand) Run(s *options.Options) error {
|
||||
func (c *listCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
resp, err := api.Get(c.URL, listEndpoint, c.Proxy, c.Username, password)
|
||||
|
@@ -1,3 +1,4 @@
|
||||
// Package user provides commands related to managing users.
|
||||
package user
|
||||
|
||||
// Command contains all subcommands provided by this package.
|
||||
|
@@ -19,7 +19,7 @@ type showCommand struct {
|
||||
ID uint `arg:"" help:"The ID of the user"`
|
||||
}
|
||||
|
||||
func (c *showCommand) Run(s *options.Options) error {
|
||||
func (c *showCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
populatedEndpoint := fmt.Sprintf(showEndpoint, c.ID)
|
||||
|
@@ -21,7 +21,7 @@ type updateCommand struct {
|
||||
NewMatrixID string `long:"new-matrixid" help:"The new Matrix ID of the user"`
|
||||
}
|
||||
|
||||
func (c *updateCommand) Run(s *options.Options) error {
|
||||
func (c *updateCommand) Run(_ *options.Options) error {
|
||||
password := ui.GetCurrentPassword(c.Username)
|
||||
|
||||
data := map[string]interface{}{}
|
||||
|
Reference in New Issue
Block a user