From e8e9bbfe15b864c059b9433b6ff2acef381ba801 Mon Sep 17 00:00:00 2001 From: ExplodingDragon Date: Mon, 22 Dec 2025 23:47:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9C=AA=E6=89=BE=E5=88=B0?= =?UTF-8?q?=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/core/meta.go | 11 ++++++----- pkg/providers/gitea.go | 7 ++++++- 2 files changed, 12 insertions(+), 6 deletions(-) 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{