Add user activities actor
Why are we doing this work
The last ActivityPub actor for social features! After this, anyone on the Fediverse can follow a user on a GitLab instance, just as they can follow users on their own app. And with that, we will have the stack and experience to tackle the real deal, cross-instance merge requests. :) But first…
Profile
That one is easy because it's basically the first resource ActivityPub has in mind.
{
"@context": "https://www.w3.org/ns/activitystreams",
"id": USER_PROFILE_URL,
"type": "Person",
"name": USER_NAME,
"url": USER_PROFILE_URL,
"outbox": USER_OUTBOX_URL,
"inbox": null,
}
Outbox
The user actor is special because as a god object, it can basically be linked to all events happening on the platform.
It's basically a join of events on other resources:
- all release activities
- all project activities
- all group activities
And of course, we should only publish those activities for projects/groups that are public.
Relevant links
Non-functional requirements
-
Documentation: -
Testing:
Implementation plan
-
actor's profile endpoint -
actor's outbox endpoint -
emit ActivityPub push requests
Verification steps
TBD