From ab953e8a3e4e48146add563f586c37661d1ad318 Mon Sep 17 00:00:00 2001 From: dawn Date: Sat, 26 Sep 2026 18:08:53 +0300 Subject: [PATCH] spindle/tapclient: debug log instead of erroring on repo sparse-clone failure Signed-off-by: dawn --- spindle/tapclient.go | 4 +++- spindle/tapclient_test.go | 16 ++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/spindle/tapclient.go b/spindle/tapclient.go index 0b9de4037..3c46286dc 100644 --- a/spindle/tapclient.go +++ b/spindle/tapclient.go @@ -231,7 +231,9 @@ func (t *Tap) processRepo(ctx context.Context, evt *tapc.RecordEventData) error repoCloneUri := t.spindle.newRepoCloneUrl(repo.Knot, repo.RepoDid) repoPath := t.spindle.newRepoPath(repo.RepoDid) if err := gitutil.SparseSync(ctx, repoCloneUri, repoPath, "", sparseWorkflowDir); err != nil { - return fmt.Errorf("setting up sparse-clone git repo: %w", err) + // don't fail here. the repo might just genuinely be empty (in which case + // SparseSync would error out!) + l.Debug("failed to sparse-clone git repo, will retry on push", "err", err) } legacyName := "" diff --git a/spindle/tapclient_test.go b/spindle/tapclient_test.go index 8464a3c54..077a70045 100644 --- a/spindle/tapclient_test.go +++ b/spindle/tapclient_test.go @@ -83,9 +83,15 @@ func TestProcessRepo_MembershipCheck(t *testing.T) { if jcerr != nil { t.Fatalf("NewJetstreamClient: %v", jcerr) } + tapServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + })) + t.Cleanup(tapServer.Close) + s := &Spindle{ db: d, e: e, + vault: newTestVault(t), l: slog.Default(), cfg: cfg, jc: jc, @@ -96,6 +102,7 @@ func TestProcessRepo_MembershipCheck(t *testing.T) { tap := &Tap{ spindle: s, logger: slog.Default(), + tap: tapc.NewClient(tapServer.URL, "admin"), } ownerDid := syntax.DID("did:plc:memberowner") @@ -152,12 +159,13 @@ func TestProcessRepo_MembershipCheck(t *testing.T) { Action: tapc.RecordCreateAction, Record: recMemberJson, }) - if err == nil { - t.Fatal("expected git clone error for valid member, but got nil") + if err != nil { + t.Fatalf("processRepo returned unexpected error for member: %v", err) } - if !strings.Contains(err.Error(), "setting up sparse-clone git repo") { - t.Fatalf("expected sparse-clone error, got: %v", err) + _, err = d.GetRepoByOwnerRkey(ownerDid, "test-repo-rkey") + if err != nil { + t.Fatalf("repo for member was not registered in DB: %v", err) } } -- 2.51.2