diff --git a/modules/forgefed/branch.go b/modules/forgefed/branch.go index d2cc71a96b..29ec54981b 100644 --- a/modules/forgefed/branch.go +++ b/modules/forgefed/branch.go @@ -44,9 +44,12 @@ func (b Branch) MarshalJSON() ([]byte, error) { } func JSONLoadBranch(val *fastjson.Value, b *Branch) error { - ap.OnObject(&b.Object, func(o *ap.Object) error { + if err := ap.OnObject(&b.Object, func(o *ap.Object) error { return ap.JSONLoadObject(val, o) - }) + }); err != nil { + return err + } + b.Ref = ap.JSONGetItem(val, "ref") return nil } diff --git a/modules/forgefed/commit.go b/modules/forgefed/commit.go index ff87c3f479..f7337486fc 100644 --- a/modules/forgefed/commit.go +++ b/modules/forgefed/commit.go @@ -50,9 +50,12 @@ func (c Commit) MarshalJSON() ([]byte, error) { } func JSONLoadCommit(val *fastjson.Value, c *Commit) error { - ap.OnObject(&c.Object, func(o *ap.Object) error { + if err := ap.OnObject(&c.Object, func(o *ap.Object) error { return ap.JSONLoadObject(val, o) - }) + }); err != nil { + return err + } + c.Created = ap.JSONGetTime(val, "created") c.Committed = ap.JSONGetTime(val, "committed") return nil diff --git a/modules/forgefed/push.go b/modules/forgefed/push.go index 105fd10232..299ed9c2a9 100644 --- a/modules/forgefed/push.go +++ b/modules/forgefed/push.go @@ -54,9 +54,12 @@ func (p Push) MarshalJSON() ([]byte, error) { } func JSONLoadPush(val *fastjson.Value, p *Push) error { - ap.OnObject(&p.Object, func(o *ap.Object) error { + if err := ap.OnObject(&p.Object, func(o *ap.Object) error { return ap.JSONLoadObject(val, o) - }) + }); err != nil { + return err + } + p.Target = ap.JSONGetItem(val, "target") p.HashBefore = ap.JSONGetItem(val, "hashBefore") p.HashAfter = ap.JSONGetItem(val, "hashAfter") diff --git a/modules/forgefed/repository.go b/modules/forgefed/repository.go index 931a7ab752..da1c3b7ebc 100644 --- a/modules/forgefed/repository.go +++ b/modules/forgefed/repository.go @@ -55,9 +55,12 @@ func (r Repository) MarshalJSON() ([]byte, error) { } func JSONLoadRepository(val *fastjson.Value, r *Repository) error { - ap.OnActor(&r.Actor, func(a *ap.Actor) error { + if err := ap.OnActor(&r.Actor, func(a *ap.Actor) error { return ap.JSONLoadActor(val, a) - }) + }); err != nil { + return err + } + r.Team = ap.JSONGetItem(val, "team") r.Forks = ap.JSONGetItem(val, "forks") r.ForkedFrom = ap.JSONGetItem(val, "forkedFrom") diff --git a/routers/api/v1/activitypub/person.go b/routers/api/v1/activitypub/person.go index 4f0df2d605..576d3ce2dd 100644 --- a/routers/api/v1/activitypub/person.go +++ b/routers/api/v1/activitypub/person.go @@ -182,7 +182,7 @@ func PersonOutbox(ctx *context.APIContext) { if action.OpType == models.ActionCreateRepo { // Created a repo object := ap.Note{Type: ap.NoteType, Content: ap.NaturalLanguageValuesNew()} - object.Content.Set("en", ap.Content(action.GetRepoName())) + _ = object.Content.Set("en", ap.Content(action.GetRepoName())) create := ap.Create{Type: ap.CreateType, Object: object} err := outbox.OrderedItems.Append(create) if err != nil { @@ -200,7 +200,7 @@ func PersonOutbox(ctx *context.APIContext) { for _, star := range stars { object := ap.Note{Type: ap.NoteType, Content: ap.NaturalLanguageValuesNew()} - object.Content.Set("en", ap.Content("Starred "+star.Name)) + _ = object.Content.Set("en", ap.Content("Starred "+star.Name)) create := ap.Create{Type: ap.CreateType, Object: object} err := outbox.OrderedItems.Append(create) if err != nil { diff --git a/routers/api/v1/activitypub/reqsignature.go b/routers/api/v1/activitypub/reqsignature.go index 11caeff9ff..16731c485a 100644 --- a/routers/api/v1/activitypub/reqsignature.go +++ b/routers/api/v1/activitypub/reqsignature.go @@ -79,7 +79,11 @@ func verifyHTTPSignatures(ctx *gitea_context.APIContext) (authenticated bool, er } // 4. Create a federated user for the actor var person ap.Person - person.UnmarshalJSON(b) + err = person.UnmarshalJSON(b) + if err != nil { + return + } + err = activitypub.FederatedUserNew(ctx, &person) return authenticated, err }