diff --git a/.gitignore b/.gitignore index 60c6d76..8745935 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .idea/ +.cache/ *.iml key-database.pogreb/ acme-account.json diff --git a/.golangci.yml b/.golangci.yml index 6d9b95a..488ca09 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -12,9 +12,23 @@ linters-settings: - hugeParam linters: + disable-all: true enable: - unconvert - gocritic + - gofumpt + - bidichk + - errcheck + - gofmt + - goimports + - gosimple + - govet + - ineffassign + - misspell + - staticcheck + - typecheck + - unused + - whitespace run: timeout: 5m diff --git a/Justfile b/Justfile index 5687a14..c4ae778 100644 --- a/Justfile +++ b/Justfile @@ -19,7 +19,6 @@ build-tag VERSION: CGO_ENABLED=1 go build -tags '{{TAGS}}' -ldflags '-s -w -X "codeberg.org/codeberg/pages/server/version.Version={{VERSION}}" {{CGO_FLAGS}}' -v -o build/codeberg-pages-server ./ lint: tool-golangci tool-gofumpt - [ $(gofumpt -extra -l . | wc -l) != 0 ] && { echo 'code not formated'; exit 1; }; \ golangci-lint run --timeout 5m --build-tags integration # TODO: run editorconfig-checker @@ -41,7 +40,7 @@ tool-gofumpt: fi test: - go test -race -tags '{{TAGS}}' codeberg.org/codeberg/pages/server/... codeberg.org/codeberg/pages/html/ + go test -race -cover -tags '{{TAGS}}' codeberg.org/codeberg/pages/server/... codeberg.org/codeberg/pages/html/ test-run TEST: go test -race -tags '{{TAGS}}' -run "^{{TEST}}$" codeberg.org/codeberg/pages/server/... codeberg.org/codeberg/pages/html/ diff --git a/cmd/main.go b/cmd/main.go index eb22d10..af4d2ce 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -37,7 +37,7 @@ var BlacklistedPaths = []string{ // Serve sets up and starts the web server. func Serve(ctx *cli.Context) error { - // Initalize the logger. + // Initialize the logger. logLevel, err := zerolog.ParseLevel(ctx.String("log-level")) if err != nil { return err diff --git a/server/certificates/certificates.go b/server/certificates/certificates.go index f8cae9d..555539e 100644 --- a/server/certificates/certificates.go +++ b/server/certificates/certificates.go @@ -350,6 +350,7 @@ func obtainCert(acmeClient *lego.Client, domains []string, renew *certificate.Re } func SetupAcmeConfig(acmeAPI, acmeMail, acmeEabHmac, acmeEabKID string, acmeAcceptTerms bool) (*lego.Config, error) { + // TODO: make it a config flag const configFile = "acme-account.json" var myAcmeAccount AcmeAccount var myAcmeConfig *lego.Config diff --git a/server/certificates/mock.go b/server/certificates/mock.go index 7c6ce33..a28d0f4 100644 --- a/server/certificates/mock.go +++ b/server/certificates/mock.go @@ -13,6 +13,7 @@ import ( "github.com/go-acme/lego/v4/certcrypto" "github.com/go-acme/lego/v4/certificate" + "github.com/rs/zerolog/log" "codeberg.org/codeberg/pages/server/database" ) @@ -75,7 +76,7 @@ func mockCert(domain, msg, mainDomainSuffix string, keyDatabase database.CertDB) databaseName = mainDomainSuffix } if err := keyDatabase.Put(databaseName, res); err != nil { - panic(err) + log.Error().Err(err) } tlsCertificate, err := tls.X509KeyPair(res.Certificate, res.PrivateKey) diff --git a/server/database/mock.go b/server/database/mock.go index 5b36bec..7c3735e 100644 --- a/server/database/mock.go +++ b/server/database/mock.go @@ -43,7 +43,7 @@ func (p tmpDB) Compact() (string, error) { } func (p tmpDB) Items(page, pageSize int) ([]*Cert, error) { - panic("Items not implemented for tmpDB") + return nil, fmt.Errorf("items not implemented for tmpDB") } func NewTmpDB() (CertDB, error) { diff --git a/server/upstream/helper.go b/server/upstream/helper.go index a84d4f0..ac0ab3f 100644 --- a/server/upstream/helper.go +++ b/server/upstream/helper.go @@ -17,17 +17,17 @@ func (o *Options) GetBranchTimestamp(giteaClient *gitea.Client) (bool, error) { // Get default branch defaultBranch, err := giteaClient.GiteaGetRepoDefaultBranch(o.TargetOwner, o.TargetRepo) if err != nil { - log.Err(err).Msg("Could't fetch default branch from repository") + log.Err(err).Msg("Couldn't fetch default branch from repository") return false, err } - log.Debug().Msgf("Succesfully fetched default branch %q from Gitea", defaultBranch) + log.Debug().Msgf("Successfully fetched default branch %q from Gitea", defaultBranch) o.TargetBranch = defaultBranch } timestamp, err := giteaClient.GiteaGetRepoBranchTimestamp(o.TargetOwner, o.TargetRepo, o.TargetBranch) if err != nil { if !errors.Is(err, gitea.ErrorNotFound) { - log.Error().Err(err).Msg("Could not get latest commit's timestamp from branch") + log.Error().Err(err).Msg("Could not get latest commit timestamp from branch") } return false, err } @@ -36,7 +36,7 @@ func (o *Options) GetBranchTimestamp(giteaClient *gitea.Client) (bool, error) { return false, fmt.Errorf("empty response") } - log.Debug().Msgf("Succesfully fetched latest commit's timestamp from branch: %#v", timestamp) + log.Debug().Msgf("Successfully fetched latest commit timestamp from branch: %#v", timestamp) o.BranchTimestamp = timestamp.Timestamp o.TargetBranch = timestamp.Branch return true, nil