diff --git a/.woodpecker.yml b/.woodpecker.yml index 2674e9b..db51eba 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,5 +1,3 @@ -branches: main - pipeline: # use vendor to cache dependencies vendor: @@ -19,7 +17,7 @@ pipeline: build: group: compliant - image: a6543/golang_just + image: codeberg.org/6543/docker-images/golang_just commands: - go version - just build @@ -39,7 +37,7 @@ pipeline: build-tag: group: compliant - image: a6543/golang_just + image: codeberg.org/6543/docker-images/golang_just commands: - go version - just build-tag ${CI_COMMIT_TAG##v} @@ -48,13 +46,13 @@ pipeline: test: group: test - image: a6543/golang_just + image: codeberg.org/6543/docker-images/golang_just commands: - just test integration-tests: group: test - image: a6543/golang_just + image: codeberg.org/6543/docker-images/golang_just commands: - just integration environment: diff --git a/README.md b/README.md index 700f279..c4758ac 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ and especially have a look at [this section of the haproxy.cfg](https://codeberg - `ENABLE_HTTP_SERVER` (default: false): Set this to true to enable the HTTP-01 challenge and redirect all other HTTP requests to HTTPS. Currently only works with port 80. - `DNS_PROVIDER` (default: use self-signed certificate): Code of the ACME DNS provider for the main domain wildcard. See https://go-acme.github.io/lego/dns/ for available values & additional environment variables. -- `DEBUG` (default: false): Set this to true to enable debug logging. +- `LOG_LEVEL` (default: warn): Set this to specify the level of logging. ## Contributing to the development @@ -106,4 +106,4 @@ run `just dev` now this pages should work: - https://magiclike.localhost.mock.directory:4430/ - https://momar.localhost.mock.directory:4430/ci-testing/ - - https://momar.localhost.mock.directory:4430/pag/@master/ \ No newline at end of file + - https://momar.localhost.mock.directory:4430/pag/@master/ diff --git a/server/certificates/certificates.go b/server/certificates/certificates.go index b1c1329..bf3c38b 100644 --- a/server/certificates/certificates.go +++ b/server/certificates/certificates.go @@ -415,7 +415,7 @@ func SetupCertificates(mainDomainSuffix []byte, dnsProvider string, acmeConfig * acmeClient, err = lego.NewClient(acmeConfig) if err != nil { - log.Error().Err(err).Msg("Can't create ACME client, continuing with mock certs only") + log.Fatal().Err(err).Msg("Can't create ACME client, continuing with mock certs only") } else { err = acmeClient.Challenge.SetTLSALPN01Provider(AcmeTLSChallengeProvider{challengeCache}) if err != nil { diff --git a/server/handler.go b/server/handler.go index eaa2feb..3a88c82 100644 --- a/server/handler.go +++ b/server/handler.go @@ -86,7 +86,7 @@ func Handler(mainDomainSuffix, rawDomain []byte, // also disallow search indexing and add a Link header to the canonical URL. tryBranch := func(log zerolog.Logger, repo, branch string, path []string, canonicalLink string) bool { if repo == "" { - log.Debug().Msg("tryBranch: repo is empty") + log.Warn().Msg("tryBranch: repo is empty") return false } @@ -97,7 +97,7 @@ func Handler(mainDomainSuffix, rawDomain []byte, // Check if the branch exists, otherwise treat it as a file path branchTimestampResult := upstream.GetBranchTimestamp(giteaClient, targetOwner, repo, branch, branchTimestampCache) if branchTimestampResult == nil { - log.Debug().Msg("tryBranch: branch doesn't exist") + log.Warn().Msg("tryBranch: branch doesn't exist") return false } @@ -299,7 +299,7 @@ func Handler(mainDomainSuffix, rawDomain []byte, return } - log.Info().Msg("tryBranch, now trying upstream 7 %s") + log.Info().Msg("tryBranch, now trying upstream 7") tryUpstream(ctx, giteaClient, mainDomainSuffix, trimmedHost, targetOptions, targetOwner, targetRepo, targetBranch, targetPath, canonicalDomainCache, branchTimestampCache, fileResponseCache) diff --git a/server/upstream/helper.go b/server/upstream/helper.go index 0714dcd..28f4474 100644 --- a/server/upstream/helper.go +++ b/server/upstream/helper.go @@ -9,6 +9,7 @@ import ( "codeberg.org/codeberg/pages/server/cache" "codeberg.org/codeberg/pages/server/gitea" + "github.com/rs/zerolog/log" ) type branchTimestamp struct { @@ -19,10 +20,13 @@ type branchTimestamp struct { // GetBranchTimestamp finds the default branch (if branch is "") and returns the last modification time of the branch // (or nil if the branch doesn't exist) func GetBranchTimestamp(giteaClient *gitea.Client, owner, repo, branch string, branchTimestampCache cache.SetGetKey) *branchTimestamp { + log := log.With().Strs("BranchInfo", []string{owner, repo, branch}).Logger() if result, ok := branchTimestampCache.Get(owner + "/" + repo + "/" + branch); ok { if result == nil { + log.Debug().Msg("branchTimestampCache found item, but result is empty") return nil } + log.Debug().Msg("branchTimestampCache found item, returning result") return result.(*branchTimestamp) } result := &branchTimestamp{ @@ -32,16 +36,20 @@ func GetBranchTimestamp(giteaClient *gitea.Client, owner, repo, branch string, b // Get default branch defaultBranch, err := giteaClient.GiteaGetRepoDefaultBranch(owner, repo) if err != nil { + log.Err(err).Msg("Could't fetch default branch from repository") _ = branchTimestampCache.Set(owner+"/"+repo+"/", nil, defaultBranchCacheTimeout) return nil } + log.Debug().Msg("Succesfully fetched default branch from Gitea") result.Branch = defaultBranch } timestamp, err := giteaClient.GiteaGetRepoBranchTimestamp(owner, repo, result.Branch) if err != nil { + log.Err(err).Msg("Could not get latest commit's timestamp from branch") return nil } + log.Debug().Msg("Succesfully fetched latest commit's timestamp from branch, adding to cache") result.Timestamp = timestamp _ = branchTimestampCache.Set(owner+"/"+repo+"/"+branch, result, branchExistenceCacheTimeout) return result diff --git a/server/upstream/upstream.go b/server/upstream/upstream.go index 0e27727..61c90de 100644 --- a/server/upstream/upstream.go +++ b/server/upstream/upstream.go @@ -85,6 +85,7 @@ func (o *Options) Upstream(ctx *fasthttp.RequestCtx, giteaClient *gitea.Client, } else { res, err = giteaClient.ServeRawContent(o.generateUriClientArgs()) } + log.Debug().Msg("Aquisting") // Handle errors @@ -158,6 +159,7 @@ func (o *Options) Upstream(ctx *fasthttp.RequestCtx, giteaClient *gitea.Client, ctx.Redirect(o.redirectIfExists, fasthttp.StatusTemporaryRedirect) return true } + log.Debug().Msg("Handling error") // Set the MIME type @@ -200,6 +202,7 @@ func (o *Options) Upstream(ctx *fasthttp.RequestCtx, giteaClient *gitea.Client, html.ReturnErrorPage(ctx, fasthttp.StatusInternalServerError) return true } + log.Debug().Msg("Sending response") if res != nil && res.Header.ContentLength() <= fileCacheSizeLimit && ctx.Err() == nil {