···
"tangled.sh/tangled.sh/core/workflow"
28
-
func (h *Handle) processPublicKey(ctx context.Context, did string, record tangled.PublicKey) error {
28
+
func (h *Handle) processPublicKey(ctx context.Context, event *models.Event) error {
l := log.FromContext(ctx)
30
+
raw := json.RawMessage(event.Commit.Record)
33
+
var record tangled.PublicKey
34
+
if err := json.Unmarshal(raw, &record); err != nil {
35
+
return fmt.Errorf("failed to unmarshal record: %w", err)
···
42
-
func (h *Handle) processKnotMember(ctx context.Context, did string, record tangled.KnotMember) error {
50
+
func (h *Handle) processKnotMember(ctx context.Context, event *models.Event) error {
l := log.FromContext(ctx)
52
+
raw := json.RawMessage(event.Commit.Record)
55
+
var record tangled.KnotMember
56
+
if err := json.Unmarshal(raw, &record); err != nil {
57
+
return fmt.Errorf("failed to unmarshal record: %w", err)
if record.Domain != h.c.Server.Hostname {
l.Error("domain mismatch", "domain", record.Domain, "expected", h.c.Server.Hostname)
···
75
-
func (h *Handle) processPull(ctx context.Context, did string, record tangled.RepoPull) error {
90
+
func (h *Handle) processPull(ctx context.Context, event *models.Event) error {
91
+
raw := json.RawMessage(event.Commit.Record)
94
+
var record tangled.RepoPull
95
+
if err := json.Unmarshal(raw, &record); err != nil {
96
+
return fmt.Errorf("failed to unmarshal record: %w", err)
l := log.FromContext(ctx)
l = l.With("handler", "processPull")
···
Nsid: tangled.PipelineNSID,
EventJson: string(eventJson),
213
-
return h.db.InsertEvent(event, h.n)
236
+
return h.db.InsertEvent(ev, h.n)
// duplicated from add collaborator
217
-
func (h *Handle) processCollaborator(ctx context.Context, did string, record tangled.RepoCollaborator) error {
240
+
func (h *Handle) processCollaborator(ctx context.Context, event *models.Event) error {
241
+
raw := json.RawMessage(event.Commit.Record)
244
+
var record tangled.RepoCollaborator
245
+
if err := json.Unmarshal(raw, &record); err != nil {
246
+
return fmt.Errorf("failed to unmarshal record: %w", err)
repoAt, err := syntax.ParseATURI(record.Repo)
···
didSlashRepo, _ := securejoin.SecureJoin(owner.DID.String(), repo.Name)
// check perms for this user
250
-
if ok, err := h.e.IsCollaboratorInviteAllowed(owner.DID.String(), rbac.ThisServer, didSlashRepo); !ok || err != nil {
281
+
if ok, err := h.e.IsCollaboratorInviteAllowed(did, rbac.ThisServer, didSlashRepo); !ok || err != nil {
return fmt.Errorf("insufficient permissions: %w", err)
···
func (h *Handle) processMessages(ctx context.Context, event *models.Event) error {
if event.Kind != models.EventKindCommit {
···
324
-
raw := json.RawMessage(event.Commit.Record)
switch event.Commit.Collection {
case tangled.PublicKeyNSID:
328
-
var record tangled.PublicKey
329
-
if err := json.Unmarshal(raw, &record); err != nil {
330
-
return fmt.Errorf("failed to unmarshal record: %w", err)
332
-
if err := h.processPublicKey(ctx, did, record); err != nil {
333
-
return fmt.Errorf("failed to process public key: %w", err)
356
+
err = h.processPublicKey(ctx, event)
case tangled.KnotMemberNSID:
337
-
var record tangled.KnotMember
338
-
if err := json.Unmarshal(raw, &record); err != nil {
339
-
return fmt.Errorf("failed to unmarshal record: %w", err)
341
-
if err := h.processKnotMember(ctx, did, record); err != nil {
342
-
return fmt.Errorf("failed to process knot member: %w", err)
358
+
err = h.processKnotMember(ctx, event)
case tangled.RepoPullNSID:
346
-
var record tangled.RepoPull
347
-
if err := json.Unmarshal(raw, &record); err != nil {
348
-
return fmt.Errorf("failed to unmarshal record: %w", err)
350
-
if err := h.processPull(ctx, did, record); err != nil {
351
-
return fmt.Errorf("failed to process knot member: %w", err)
360
+
err = h.processPull(ctx, event)
case tangled.RepoCollaboratorNSID:
355
-
var record tangled.RepoCollaborator
356
-
if err := json.Unmarshal(raw, &record); err != nil {
357
-
return fmt.Errorf("failed to unmarshal record: %w", err)
359
-
if err := h.processCollaborator(ctx, did, record); err != nil {
360
-
return fmt.Errorf("failed to process knot member: %w", err)
362
+
err = h.processCollaborator(ctx, event)
366
+
h.l.Debug("failed to process event", "nsid", event.Commit.Collection, "err", err)