Monorepo for Tangled tangled.org
2

Configure Feed

Select the types of activity you want to include in your feed.

knotserver/internal: leave `refUpdate.meta` empty for deleted refs

Signed-off-by: Seongmin Lee <git@boltless.me>

author
Seongmin Lee
committer
Tangled
date (May 19, 2026, 11:32 AM +0300) commit 1632478a parent 6c1043c5 change-id yvoounyu
+21 -18
+21 -18
knotserver/internal.go
··· 275 275 } 276 276 277 277 func (h *InternalHandle) insertRefUpdate(line git.PostReceiveLine, gitUserDid, ownerDid, repoDid string) error { 278 - repoPath, _, _, resolveErr := h.db.ResolveRepoDIDOnDisk(h.c.Repo.ScanPath, repoDid) 279 - if resolveErr != nil { 280 - return fmt.Errorf("failed to resolve repo on disk: %w", resolveErr) 281 - } 282 - 283 - gr, err := git.Open(repoPath, line.Ref) 284 - if err != nil { 285 - return fmt.Errorf("failed to open git repo at ref %s: %w", line.Ref, err) 286 - } 287 - 288 - meta, err := gr.RefUpdateMeta(line) 289 - if err != nil { 290 - return fmt.Errorf("failed to get ref update metadata: %w", err) 291 - } 292 - 293 - metaRecord := meta.AsRecord() 294 - 295 278 refUpdate := tangled.GitRefUpdate{ 296 279 OldSha: line.OldSha.String(), 297 280 NewSha: line.NewSha.String(), ··· 299 282 CommitterDid: gitUserDid, 300 283 OwnerDid: &ownerDid, 301 284 Repo: repoDid, 302 - Meta: &metaRecord, 285 + Meta: nil, 286 + } 287 + 288 + if !line.NewSha.IsZero() { 289 + repoPath, _, _, resolveErr := h.db.ResolveRepoDIDOnDisk(h.c.Repo.ScanPath, repoDid) 290 + if resolveErr != nil { 291 + return fmt.Errorf("failed to resolve repo on disk: %w", resolveErr) 292 + } 293 + 294 + gr, err := git.Open(repoPath, line.Ref) 295 + if err != nil { 296 + return fmt.Errorf("failed to open git repo at ref %s: %w", line.Ref, err) 297 + } 298 + 299 + meta, err := gr.RefUpdateMeta(line) 300 + if err != nil { 301 + return fmt.Errorf("failed to get ref update metadata: %w", err) 302 + } 303 + 304 + refUpdate.Meta = new(tangled.GitRefUpdate_Meta) 305 + *refUpdate.Meta = meta.AsRecord() 303 306 } 304 307 305 308 eventJson, err := json.Marshal(refUpdate)