diff --git a/pkg/core/meta.go b/pkg/core/meta.go index a663da7..563a7ad 100644 --- a/pkg/core/meta.go +++ b/pkg/core/meta.go @@ -16,8 +16,6 @@ import ( "gopkg.d7z.net/middleware/tools" "gopkg.in/yaml.v3" - stdErr "errors" - "github.com/pkg/errors" "gopkg.d7z.net/gitea-pages/pkg/utils" @@ -109,12 +107,15 @@ func (s *ServerMeta) GetMeta(ctx context.Context, owner, repo string) (*PageMeta } return nil, os.ErrNotExist } - + rel := NewEmptyPageMetaContent() info, err := s.Meta(ctx, owner, repo) if err != nil { - return nil, stdErr.Join(err, os.ErrNotExist) + if errors.Is(err, os.ErrNotExist) { + rel.IsPage = false + _ = s.cache.Store(ctx, key, *rel) + } + return nil, err } - rel := NewEmptyPageMetaContent() vfs := NewPageVFS(s.Backend, owner, repo, info.ID) rel.CommitID = info.ID rel.LastModified = info.LastModified diff --git a/pkg/providers/gitea.go b/pkg/providers/gitea.go index c99f458..6497aca 100644 --- a/pkg/providers/gitea.go +++ b/pkg/providers/gitea.go @@ -2,8 +2,10 @@ package providers import ( "context" + "errors" "net/http" "net/url" + "os" "code.gitea.io/sdk/gitea" "gopkg.d7z.net/gitea-pages/pkg/core" @@ -33,8 +35,11 @@ func NewGitea(httpClient *http.Client, url, token, defaultBranch string) (*Provi } func (g *ProviderGitea) Meta(_ context.Context, owner, repo string) (*core.Metadata, error) { - branch, _, err := g.gitea.GetRepoBranch(owner, repo, g.defaultBranch) + branch, resp, err := g.gitea.GetRepoBranch(owner, repo, g.defaultBranch) if err != nil { + if resp != nil && resp.StatusCode >= 400 && resp.StatusCode < 500 { + return nil, errors.Join(err, os.ErrNotExist) + } return nil, err } return &core.Metadata{