[FEAT] implement federation #59

Closed
opened 2022-11-27 22:36:38 +00:00 by xy · 27 comments

Update June 2024: this issue is no longer updated. Progress on federation can be followed from:


This issue tracks the progress of implementing federation in Forgejo.

Ongoing tasks (updated monthly)

Tasks backlog

Discovery

This is done.

Actors

This is almost done.

  • Create public/private keypair go-gitea@github.com/gitea#17071
  • HTTP signature middleware go-gitea@github.com/gitea#19133
  • Mapping Gitea's concepts ("People", "Teams") into AP "Actor" concepts
  • Mapping Gitea's actor concepts into the ontology
  • Assign Actor IRIs go-gitea@github.com/gitea#19133
  • Manage inbox and outbox
  • Send out activities to followers
  • Render followed user updates in your user feed
  • Periodically fetch and update cached remote users' data
  • Clean out avatar cache

ForgeFed

go-ap

Adding ForgeFed types to go-ap Mastodon discussion, mailing list discussion

  • Implement Commit type
  • Implement Repository type
  • Implement Branch type
  • Implement Push type
  • Implement Ticket type
  • Tests
  • Export more JSON functions from go-ap/activitypub (solved by using a fork https://gitea.com/Ta180m/activitypub)

Serving ActivityStreams

  • Addressing
  • Transport (HTTPS with HTTP signatures) go-gitea@github.com/gitea#19133
  • Retry sending activities to servers that are down or have an outgoing activity queue
  • Serve AS representation of users
  • Use F3 to serve AS representation of repos and repo contents
  • Serve AS representation of organizations

Processing ActivityStreams

  • Verify that actor or attributedTo matches HTTP signature
  • sharedInbox? (not necessary)
  • C2S ActivityPub? (not necessary)
  • Process Follow and Undo Follow activities
  • Process Like and Undo Like activities
  • Use F3 to process repo-related activities
  • Process organization-related activities
  • Cross-instance Git push
  • Mirroring using HTTP signature authentication
  • Federated private repos (use HTTP signatures for auth)
  • Federated discussions? (like GitHub discussions?)

Database representation of remote data

  • Remote federated users
  • Remote organizations
  • Remote repositories
  • Database field for storing IRIs
  • External issues (and reference in comments)
  • External PRs (and reference in comments)
  • External projects (and reference in comments)

User eXperience and User Interface

See https://gitea.com/xy/gitea/issues/8 for discussions

Migrations

See https://gitea.com/xy/gitea/issues/9

  • Username or repo renames (See https://github.com/go-gitea/gitea/pull/19133#discussion_r1050648579)
  • Moving a user or repo to a different instance
  • Official way to migrate entire GitHub account to a Gitea instance
  • Official way to migrate entire GitHub organization to a Gitea instance
  • Configurable cooldown period in which usernames cannot be claimed
  • Import repo from F3

Interoperability

  • Federated following with Mastodon, Pleroma, etc
  • Federated commenting on issues from Mastodon, etc mastodon@github.com/mastodon#18806
  • Handle Mastodon delegation
  • Federation with GitHub by redirecting github.com resources to a different domain that generates AS representations of GitHub data and can proxy issues and PRs via a bot account on GitHub, something like Forgeflux or Forgefriends?

Moderation

See https://gitea.com/xy/gitea/issues/10

  • Disable all federation features by default
  • Blocking a user
  • Blocking a server
  • Moderation UI
  • Limited federation mode where your instance only federates with whitelisted instances
  • Rate limit federation requests
  • Rate limit user signups
  • Rate limit issue creation/commenting in UI

Contributing

If you'd like to help out with forge federation but don't know where to start, the links below might be helpful.

General

Some high-level links for learning about forge federation and the bigger picture

ActivityPub

Resources for learning ActivityPub (AP)

ForgeFed/F3

Forge federation protocol based on AP

Go-Ap

A lightweight AP library in Go that Gitea is using for implementing federation

Running federated Forgejo

You can also help federation development by running federated Forgejo and reporting bugs and regressions.

  • Make backups: This code will make possibly unexpected changes to your database.
  • Compile: Clone this repo and checkout the forgejo-federation branch. If you would like to build a Docker image, there is a Dockerfile in this repo. If you would like to build a binary, install Go and Node.js and then run TAGS="bindata" make.
  • Configuration: Set ENABLED=true in the [federation] section of your config file.
Update June 2024: this issue is no longer updated. Progress on federation can be followed from: * The [monthly reports](https://forgejo.org/tag/report/) * [Issues](https://codeberg.org/forgejo/forgejo/issues?labels=79349) and [pull requests](https://codeberg.org/forgejo/forgejo/pulls?labels=79349) tagged with `forgejo/federation` --- This issue tracks the progress of implementing [federation](https://nlnet.nl/project/Forgejo/) in Forgejo. # Ongoing tasks (updated monthly) * Federated stars draft [implementation in progress](https://codeberg.org/forgejo/forgejo/pulls/1680), see the [March 2024 report](https://domaindrivenarchitecture.org/posts/2024-03-27-state-of-federation/) * F3 published a User Research report. Read more in the [March 2024](https://forum.forgefriends.org/t/f3-monthly-update-march-2024/1022) report. # Tasks backlog ## Discovery This is done. - [x] Nodeinfo endpoint [go-gitea@github.com/gitea#16758](https://github.com/go-gitea/gitea/issues/16758) [#19561](https://github.com/go-gitea/gitea/pull/19561) - [x] WebFinger [go-gitea@github.com/gitea#19462](https://github.com/go-gitea/gitea/pull/19462) [go-gitea@github.com/gitea#19133](https://github.com/go-gitea/gitea/pull/19133) - [ ] Delegation? (WebFinger responses to a different domain, like what Mastodon does with its `WEB_DOMAIN` variable. This enables federation for instances using a subdirectory) ## Actors This is almost done. - [x] Create public/private keypair [go-gitea@github.com/gitea#17071](https://github.com/go-gitea/gitea/pull/17071) - [x] HTTP signature middleware [go-gitea@github.com/gitea#19133](https://github.com/go-gitea/gitea/pull/19133) - [x] Mapping Gitea's concepts ("People", "Teams") into AP "Actor" concepts - [x] Mapping Gitea's actor concepts into the ontology - [x] Assign Actor IRIs [go-gitea@github.com/gitea#19133](https://github.com/go-gitea/gitea/pull/19133) - [x] Manage inbox and outbox - [ ] Send out activities to followers - [ ] Render followed user updates in your user feed - [ ] Periodically fetch and update cached remote users' data - [ ] Clean out avatar cache ## ForgeFed - [x] Adapt Commit forgefed vocabulary for the needs of Gitea - [x] Adapt Repository forgefed vocabulary for the needs of Gitea - [x] Figure out the best way to represent pull requests in ForgeFed [ForgeFed@codeberg.org/ForgeFed#88](https://codeberg.org/ForgeFed/ForgeFed/issues/88) - [ ] Merge [F3](https://forum.forgefriends.org/t/about-the-friendly-forge-format-f3/681) and ForgeFed - [ ] Issue state changes [ForgeFed@codeberg.org/ForgeFed#98](https://codeberg.org/ForgeFed/ForgeFed/issues/98) - [ ] Add milestones to ForgeFed - [ ] Add project board federation to ForgeFed - [ ] Add migrations to ForgeFed spec [ForgeFed@codeberg.org/ForgeFed#149](https://codeberg.org/ForgeFed/ForgeFed/issues/149) ## go-ap Adding ForgeFed types to go-ap [Mastodon discussion](https://social.exozy.me/@ta180m/108466642486831048), [mailing list discussion](https://lists.sr.ht/~mariusor/activitypub-go/%3C6aivY9YmilsvQ6CauRoaXbvXX2bdZEXOEv-xnaTD0JLvodqKPZ2FMdQHmXYKmEOdzrPZU9Ipro5sOynfe-hJbi5f31MiqOV8EI4rDOw88wg%3D%40proton.me%3E) - [x] Implement Commit type - [x] Implement Repository type - [x] Implement Branch type - [x] Implement Push type - [x] Implement Ticket type - [ ] Tests - [x] Export more JSON functions from go-ap/activitypub (solved by using a fork https://gitea.com/Ta180m/activitypub) ## Serving ActivityStreams - [x] Addressing - [x] Transport (HTTPS with HTTP signatures) [go-gitea@github.com/gitea#19133](https://github.com/go-gitea/gitea/pull/19133) - [ ] Retry sending activities to servers that are down or have an outgoing activity queue - [x] Serve AS representation of users - [ ] Use F3 to serve AS representation of repos and repo contents - [ ] Serve AS representation of organizations ## Processing ActivityStreams - [x] Verify that actor or `attributedTo` matches HTTP signature - [ ] sharedInbox? (not necessary) - [ ] C2S ActivityPub? (not necessary) - [x] Process Follow and Undo Follow activities - [x] Process Like and Undo Like activities - [ ] Use F3 to process repo-related activities - [ ] Process organization-related activities - [ ] Cross-instance Git push - [ ] Mirroring using HTTP signature authentication - [ ] Federated private repos (use HTTP signatures for auth) - [ ] Federated discussions? (like GitHub discussions?) ## Database representation of remote data - [x] Remote federated users - [ ] Remote organizations - [x] Remote repositories - [ ] Database field for storing IRIs - [ ] External issues (and reference in comments) - [ ] External PRs (and reference in comments) - [ ] External projects (and reference in comments) ## User eXperience and User Interface See https://gitea.com/xy/gitea/issues/8 for discussions - [ ] Use cases ([federated issues](https://forum.forgefriends.org/t/forgefriends-full-description/13#presentation-1) etc.) - [ ] Drafting UX in PenPot - [ ] Remote interactions pop-up UI (like Mastodon) - [x] `authorize_interaction?uri=` page (like Mastodon) - [x] Federation handling for Gitea internal functions for creating issues, starring repos, etc - [ ] Global search bar - [ ] Discoverability (See https://sepiasearch.org/, https://github.com/forgeflux-org/northstar) ## Migrations See https://gitea.com/xy/gitea/issues/9 - [ ] Username or repo renames (See https://github.com/go-gitea/gitea/pull/19133#discussion_r1050648579) - [ ] Moving a user or repo to a different instance - [ ] Official way to migrate entire GitHub account to a Gitea instance - [ ] Official way to migrate entire GitHub organization to a Gitea instance - [ ] Configurable cooldown period in which usernames cannot be claimed - [ ] Import repo from F3 ## Interoperability - [x] Federated following with Mastodon, Pleroma, etc - [ ] Federated commenting on issues from Mastodon, etc [mastodon@github.com/mastodon#18806](https://github.com/mastodon/mastodon/issues/18806) - [ ] Handle Mastodon delegation - [ ] Federation with GitHub by redirecting github.com resources to a different domain that generates AS representations of GitHub data and can proxy issues and PRs via a bot account on GitHub, something like Forgeflux or Forgefriends? ## Moderation See https://gitea.com/xy/gitea/issues/10 - [x] Disable all federation features by default - [ ] Blocking a user - [ ] Blocking a server - [ ] Moderation UI - [ ] Limited federation mode where your instance only federates with whitelisted instances - [ ] Rate limit federation requests - [ ] Rate limit user signups - [ ] Rate limit issue creation/commenting in UI # Contributing If you'd like to help out with forge federation but don't know where to start, the links below might be helpful. ## General Some high-level links for learning about forge federation and the bigger picture - https://matrix.to/#/#general-forgefed:matrix.batsense.net General forge federation chatroom - https://matrix.to/#/#forgefederation:matrix.batsense.net Forge federation Matrix space - https://forum.forgefriends.org/ ForgeFriends forum - https://forgeflux.org/ Forge federation using forge APIs - https://coding.social/ Social Coding movement - https://forgefriends.org/blog/2022/06/30/2022-06-state-forge-federation/ The state of forge federation, 2021-2023 - https://a.exozy.me/posts/forge-federation-myths/ - https://a.exozy.me/posts/forge-federation-design-discussion/ - https://framatube.org/w/giYiJxH3bH2BekhJzk4x2C LibrePlanet 2023 talk - https://git.exozy.me/a/gitea Old 2022 ForgeFed implementation in Gitea (not based on F3) - https://gitea.com/xy/gitea/issues Forge federation design discussions ## ActivityPub Resources for learning ActivityPub (AP) - https://activitypub.rocks/ Official ActivityPub website - https://www.w3.org/TR/activitypub/ ActivityPub specification - https://a.exozy.me/posts/activitypub-eats-your-brain/ An opinionated ActivityPub guide - https://socialhub.activitypub.rocks/pub/guide-for-new-activitypub-implementers Guide for AP implementers - https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-activitypub-server/ Tutorial for implementing a very basic AP server - https://blog.joinmastodon.org/2018/07/how-to-make-friends-and-verify-requests/ Tutorial for federated following - https://docs.joinmastodon.org/spec/activitypub/ Mastodon's AP subset - https://tinysubversions.com/notes/reading-activitypub/ How to read the AP spec - https://flak.tedunangst.com/post/ActivityPub-as-it-has-been-understood Lots of AP resources - https://delightful.club/delightful-activitypub-development/ AP developer resources ## ForgeFed/F3 Forge federation protocol based on AP - https://forgefed.org/ ForgeFed website - https://codeberg.org/ForgeFed/ForgeFed ForgeFed repo - https://matrix.to/#/#forgefed:libera.chat ForgeFed chatroom - https://vervis.peers.community/browse Reference ForgeFed implementation - https://f3.forgefriends.org/ F3 documentation ## Go-Ap A lightweight AP library in Go that Gitea is using for implementing federation - https://github.com/go-ap/activitypub Lightweight Go implementation of AP - https://github.com/go-ap/fedbox Reference implementation of a AP server using go-ap - https://man.sr.ht/~mariusor/go-activitypub/go-ap/index.md go-ap docs - https://lists.sr.ht/~mariusor/go-activitypub-discuss go-ap mailing list # Running federated Forgejo You can also help federation development by running federated Forgejo and reporting bugs and regressions. - Make backups: This code will make possibly unexpected changes to your database. - Compile: Clone this repo and checkout the `forgejo-federation` branch. If you would like to build a Docker image, there is a `Dockerfile` in this repo. If you would like to build a binary, install Go and Node.js and then run `TAGS="bindata" make`. - Configuration: Set `ENABLED=true` in the `[federation]` section of your config file.
xy added the
enhancement/feature
label 2022-11-27 22:36:38 +00:00
Ghost added the
forgejo/federation
label 2022-11-27 23:36:14 +00:00

I'm in favor of creating a forgejo-federation feature branch. AFAICT forge federation is a goal shared by all people involved in Forgejo.

I'm in favor of creating a **forgejo-federation** feature branch. AFAICT forge federation is a goal shared by all people involved in Forgejo.
xy was assigned by Ghost 2022-11-28 07:38:33 +00:00

@xy are there are changes in the forgejo-federation branch that should be merged in v1.20?

@xy are there are changes in the `forgejo-federation` branch that should be merged in v1.20?

Just to add to the mill: be aware that the French CHATONS collective is very eager to see this feature implemented. Indeed, some of us know each other, and we personnally maintain quite the database of login/passwords to contribute to our comrades forges and repositories. Be it documentation, infrastructural code, or even free projects forks and patches. Many of us used to run Gitea, and e.g. Deuxfleurs (the chaton I participate in) notably moved to Forgejo already.

See this forum post (in French): https://forum.chatons.org/t/federation-de-forges/1869

So I'm not the only one to believe that enabling federation between Forgejo instances would be beneficial to free software at large. It would tighten our infrastructural bounds, improve our capacity to contribute, and allow us to produce more generalistic software more easily.

Very glad to see you have a NLNet partnership towards this end!

Just to add to the mill: be aware that the French [CHATONS](https://chatons.org) collective is very eager to see this feature implemented. Indeed, some of us know each other, and we personnally maintain quite the database of login/passwords to contribute to our comrades forges and repositories. Be it documentation, infrastructural code, or even free projects forks and patches. Many of us used to run Gitea, and e.g. [Deuxfleurs](https://deuxfleurs.fr) (the chaton I participate in) notably moved to [Forgejo](https://git.deuxfleurs.fr) already. See this forum post (in French): https://forum.chatons.org/t/federation-de-forges/1869 So I'm not the only one to believe that enabling federation between Forgejo instances would be beneficial to free software at large. It would tighten our infrastructural bounds, improve our capacity to contribute, and allow us to produce more generalistic software more easily. Very glad to see you have a NLNet partnership towards this end!
Author

@xy are there are changes in the forgejo-federation branch that should be merged in v1.20?

Unfortunately no, since I am once again busy with something else at the moment, but hopefully I'll finally be able to resume work on it later this month.

> @xy are there are changes in the `forgejo-federation` branch that should be merged in v1.20? Unfortunately no, since I am once again busy with something else at the moment, but hopefully I'll finally be able to resume work on it later this month.
caesar pinned this 2023-08-15 22:56:37 +00:00
caesar unpinned this 2023-08-15 22:56:59 +00:00

With GitLab implementing federation, it would be great to see Forgejo do the same

With GitLab implementing federation, it would be great to see Forgejo do the same
Owner

@ip GitLab does not implement federation and never will, because it would hurt their business model. GitLab restricts the direction in which you can mirror git repositories, this is where they stand. If you want git mirroring in both directions you are required to acquire a proprietary license. That's telling you how far away they are from even the idea of federated forges 😄

That being said, I'm working on implementing federation in Forgejo and there is a lot to do. Would you like to help? There is no need to have particular skills. Just time.

@ip GitLab does not implement federation and never will, because it would hurt their business model. GitLab **restricts** the direction in which you can mirror git repositories, this is where they stand. If you want git mirroring in both directions you are required to acquire a proprietary license. That's telling you how far away they are from even the idea of federated forges 😄 That being said, I'm working on implementing federation in Forgejo and there is a lot to do. Would you like to help? There is no need to have particular skills. Just time.

GitLab is working on implementing federation between GitLab instances1.
Only for merge requests for now iirc, but one of the people implementing it, said they will consider ForgeFed when also implementing support for other stuff2.

But yes, they will probably limit some stuff like they do with mirrors, because of them being a for-profit company.

GitLab is working on implementing federation between GitLab instances[^1]. Only for merge requests for now iirc, but one of the people implementing it, said they will consider ForgeFed when also implementing support for other stuff[^2]. But yes, they will probably limit some stuff like they do with mirrors, because of them being a for-profit company. [^1]: https://gitlab.com/groups/gitlab-org/-/epics/11247 [^2]: https://gitlab.com/gitlab-org/gitlab/-/issues/21582
Owner

That's a lot of activity and I missed it completely, thanks for the pointers. Are there merge requests to implement that already? When you write "GitLab is working" do you mean that all these epics / issues originate from GitLab employees in their official capacity? Or is it more of an initiative from people in the GitLab community but not necessarily endorsed by GitLab? It would actually be better news if it was the later.

That's a **lot** of activity and I missed it completely, thanks for the pointers. Are there merge requests to implement that already? When you write "GitLab is working" do you mean that all these epics / issues originate from GitLab employees in their official capacity? Or is it more of an initiative from people in the GitLab community but not necessarily endorsed by GitLab? It would actually be better news if it was the later.

I'm not really sure how far it's done, I'm not active in the GitLab community, I just heard about it from a friend.
I'm also not sure how much GitLab as a company is involved here, If I remember correctly, the federation stuff is primarily implemented by a community member and not by GitLab itself, but don't call me on that, I lost track on all of these issues/epics/merge requests.

I'm not really sure how far it's done, I'm not active in the GitLab community, I just heard about it from a friend. I'm also not sure how much GitLab as a company is involved here, If I remember correctly, the federation stuff is primarily implemented by a community member and not by GitLab itself, but don't call me on that, I lost track on all of these issues/epics/merge requests.
Owner

@marie it's a lot, some going back five years. But it's good to have that revived. I wish there would be merge requests but I can't seem to find any just yet. If you ever see one and you remember this conversation when it happens, I would love to know.

@marie it's a lot, some going back five years. But it's good to have that revived. I wish there would be merge requests but I can't seem to find any just yet. If you ever see one and you remember this conversation when it happens, I would love to know.

@earl-warren There is one, but I know neither Gitlab nor ActivityPub.

@earl-warren There is [one](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/127023), but I know neither Gitlab nor ActivityPub.
Member

I think GitLab's activity is a bit off topic for this issue, but here's my understanding:

  • The feature requests have been open for years with no traction until last month (approx).
  • One external volunteer developer is working on it. He has some level of blessing from GitLab but they're not working on it themselves and obviously they will have to approve anything that gets merged.
  • At present the developer is working on implementing support for following an issue from Mastodon via ActivityPub – approximately equivalent to what has already been implemented for Forgejo.
  • Actual federation is something he plans to work on in future and he is aware of ForgeFed.

I don't want to diminish the work being done for GitLab at all. I think it's great to see movement there, and so long as it's done in a thoughtful and interoperable way (and every sign so far indicates that that's the intention), it will be good for the entire ecosystem including Forgejo. It's very exciting to see we're not the only ones working on it.
But it's important to be aware of the limits of what's being done at present - on both sides - and not be drawn in by hyperbole.

I think GitLab's activity is a bit off topic for this issue, but here's my understanding: - The feature requests have been open for years with no traction until last month (approx). - One external volunteer developer is working on it. He has some level of blessing from GitLab but they're not working on it themselves and obviously they will have to approve anything that gets merged. - At present the developer is working on implementing support for following an issue from Mastodon via ActivityPub – approximately equivalent to what has already been implemented for Forgejo. - Actual federation is something he plans to work on in future and he is aware of ForgeFed. I don't want to diminish the work being done for GitLab at all. I think it's great to see movement there, and so long as it's done in a thoughtful and interoperable way (and every sign so far indicates that that's the intention), it will be good for the entire ecosystem including Forgejo. It's very exciting to see we're not the only ones working on it. But it's important to be aware of the limits of what's being done at present - on both sides - and not be drawn in by hyperbole.
Owner

Sorry for contributing to derail this topic. I created a new topic in the forgefriends forum where other GitLab related efforts were tracked in the past.

Sorry for contributing to derail this topic. I created a new topic in the [forgefriends forum](https://forum.forgefriends.org/t/add-activitypub-releases-profile-and-outbox/996) where other GitLab related efforts were tracked in the past.
earl-warren added the
User Research - federation
label 2023-10-25 12:10:10 +00:00

Keep it up! May the Source be with you! Is there a group for testing calls for the federation thing?

Keep it up! May the Source be with you! Is there a group for testing calls for the federation thing?
Owner

No group yet.

No group yet.

Any news on this awesome project? 😃

Any news on this awesome project? 😃
Owner

It is great that you find it awesome. As you will see in following the links at the top of the issue, there is daily progress. Nothing usable just yet though. if you know of someone (all kinds of skills are needed) willing to help, please ask them! There is much to do.

It is great that you find it awesome. As you will see in following the links at the top of the issue, there is daily progress. Nothing usable just yet though. if you know of someone (all kinds of skills are needed) willing to help, please ask them! There is much to do.

This is a great idea. Can't wait to see forgejo instances federate seamlessly some day :)

This is a great idea. Can't wait to see forgejo instances federate seamlessly some day :)

It is great that you find it awesome. As you will see in following the links at the top of the issue, there is daily progress. Nothing usable just yet though. if you know of someone (all kinds of skills are needed) willing to help, please ask them! There is much to do.

I'd like to help but I'm not a professional coder. I'll try and run a docker container of the project and start reporting bugs. I do the same for Mastodon, Lemmy and Matrix. My limited Python and C# knowledge doesnt seem to be of much help atm. Feel free to lmk if I can do anything else. (I made an account just to voice my support in this. Git+Federation is going to change everything imo.)

P.S.: I think there should be much more updates to the state of federation in git forges (if that is the correct term even) because a lot of us fedi folk are looking forward to it but its hard to find which project is ahead and when we can start testing, etc. Obviously, the fediverse would be great for such updates. I would help with that too if needed.

> It is great that you find it awesome. As you will see in following the links at the top of the issue, there is daily progress. Nothing usable just yet though. if you know of someone (all kinds of skills are needed) willing to help, please ask them! There is much to do. I'd like to help but I'm not a professional coder. I'll try and run a docker container of the project and start reporting bugs. I do the same for Mastodon, Lemmy and Matrix. My limited Python and C# knowledge doesnt seem to be of much help atm. Feel free to lmk if I can do anything else. (I made an account just to voice my support in this. Git+Federation is going to change everything imo.) P.S.: I think there should be much more updates to the state of federation in git forges (if that is the correct term even) because a lot of us fedi folk are looking forward to it but its hard to find which project is ahead and when we can start testing, etc. Obviously, the fediverse would be great for such updates. I would help with that too if needed.
Member

It has come to my attention that there are onlookers that regularly check this this thread because they are curious about the status of federation in Forgejo. For this reason (hello strangers 👋), it might be worth mentioning here that this issue is not a declarative source and that Forgejo's monthly updates are worth checking out.

As of March 8, 2024, some of the PRs that may be worth taking a look at can be found here:

This list is not exhaustive and will get outdated fast (and I'm also not a reliable source because I don't actively work on those features :D). The pull requests marked using the labels forgejo/moderation and forgejo/federation may be worth checking out, as well as f3.forgefriends.org and forgefriends.org.

Forgejo's Issues and Pull Requests are a place of work and there is a dedicated repository for discussions (both of these places are subjected to Forgejo's Code of Conduct).

It has come to my attention that there are onlookers that regularly check this this thread because they are curious about the status of federation in Forgejo. For this reason (hello strangers 👋), it might be worth mentioning here that this issue is not a declarative source and that [Forgejo's monthly updates](https://forgejo.org/news/) are worth checking out. As of March 8, 2024, some of the PRs that may be worth taking a look at can be found here: - https://codeberg.org/forgejo/forgejo/pulls/1680 - https://codeberg.org/forgejo/forgejo/pulls/2465 - https://codeberg.org/forgejo/forgejo/pulls/2388 This list is not exhaustive and will get outdated fast (and I'm also not a reliable source because I don't actively work on those features :D). The pull requests marked using the labels [forgejo/moderation](https://codeberg.org/forgejo/forgejo/pulls?q=moderation&type=all&labels=120787) and [forgejo/federation](https://codeberg.org/forgejo/forgejo/pulls?q=federation&type=all&labels=79349) may be worth checking out, as well as [f3.forgefriends.org](https://f3.forgefriends.org/) and [forgefriends.org](https://forgefriends.org/). Forgejo's Issues and Pull Requests are a place of work and there is a [dedicated repository for discussions](https://codeberg.org/forgejo/discussions/issues) (both of these places are subjected to Forgejo's [Code of Conduct](https://codeberg.org/forgejo/code-of-conduct/)).
fnetX removed the
User Research - federation
label 2024-04-09 16:50:16 +00:00

'we will contribute the federation code upstream to Gitea.' https://forgejo.org/2023-01-10-answering-forgejo-federation-questions/#will-gitea-also-gain-federation

Is that still the plan after the hard fork?

'we will contribute the federation code upstream to Gitea.' https://forgejo.org/2023-01-10-answering-forgejo-federation-questions/#will-gitea-also-gain-federation Is that still the plan after the hard fork?
Owner

Well, yes. And Gitness and Gogs really. Whoever needs it. Will it be easy? Not really. But what would be the point of federation of some forges are left behind?

Well, yes. And Gitness and Gogs really. Whoever needs it. Will it be easy? Not really. But what would be the point of federation of some forges are left behind?
Owner

This issue is no longer updated. Progress on federation can be followed from:

Although it still lacks a user friends UI, the first federated feature was merged recently (federated stars). Things are moving forward.

This issue is no longer updated. Progress on federation can be followed from: * The [monthly reports](https://forgejo.org/tag/report/) * [Issues](https://codeberg.org/forgejo/forgejo/issues?labels=79349) and [pull requests](https://codeberg.org/forgejo/forgejo/pulls?labels=79349) tagged with `forgejo/federation` Although it still lacks a user friends UI, the first federated feature was merged recently (federated stars). Things are moving forward.

@earl-warren I can't find an issue about opening issues from other Fediverse platforms (e.g. Mastodon). Is it planned?

That would be a great addition, because registration wall is a big problem for small self-hosted forges.

@earl-warren I can't find an issue about opening issues from other Fediverse platforms (e.g. Mastodon). Is it planned? That would be a great addition, because registration wall is a big problem for small self-hosted forges.

From the reports I'm not positive I know when and how to use federation. I dont see any Q&A entries either that touch the topic. My version (7.0.4) does also not show any federation entries. Can someone point me to the correct info?

From the reports I'm not positive I know when and how to use federation. I dont see any Q&A entries either that touch the topic. My version (7.0.4) does also not show any federation entries. Can someone point me to the correct info?
Owner

From the reports I'm not positive I know when and how to use federation.

Nobody knows. It will be ready when it is ready. There is much to do and it is progressing but help is much needed. Would you like to give a hand? Or know someone who would?

> From the reports I'm not positive I know when and how to use federation. Nobody knows. It will be ready when it is ready. There is much to do and it is progressing but help is much needed. Would you like to give a hand? Or know someone who would?
Owner

@silverpill there is no such issue but this is something I'd like to use as well. Last week my contribution to the effort was helping setup the test environment to launch a GitLab instance so it can be connected via ActivityPub to a Forgejo instance. https://code.forgejo.org/forgejo/end-to-end/pulls/207

I recommend you follow the reports, that's currently the best way to keep up to date. And if you ever know someone willing to participate in the implementation, they would be very welcome. There is a need for a lot more workforce.

@silverpill there is no such issue but this is something I'd like to use as well. Last week my contribution to the effort was helping setup the test environment to launch a GitLab instance so it can be connected via ActivityPub to a Forgejo instance. https://code.forgejo.org/forgejo/end-to-end/pulls/207 I recommend you follow the reports, that's currently the best way to keep up to date. And if you ever know someone willing to participate in the implementation, they would be very welcome. There is a need for a lot more workforce.
Sign in to join this conversation.
No labels
arch
amd64
arch
arm6
arch
arm64
arch
arm7
arch
riscv64
backport/v1.19
backport/v1.20
backport/v1.21/forgejo
backport/v7.0/forgejo
backport/v8.0/forgejo
backport/v9.0/forgejo
breaking
bug
bug
confirmed
bug
duplicate
bug
needs-more-info
bug
new-report
bug
reported-upstream
codeberg
database
CockroachDB
database
MySQL
database
PostgreSQL
database
SQLite
dependency-upgrade
dependency
ACT
dependency
alpine
dependency
asciinema-player
dependency
bleve
dependency
cache
dependency
certmagic
dependency
chart.js
dependency
Chi
dependency
Chroma
dependency
citation.js
dependency
codespell
dependency
css-loader
dependency
devcontainers
dependency
dropzone
dependency
editorconfig-checker
dependency
elasticsearch
dependency
enmime
dependency
F3
dependency
ForgeFed
dependency
garage
dependency
Git
dependency
git-backporting
dependency
Gitea
dependency
gitignore
dependency
go-ap
dependency
go-enry
dependency
go-gitlab
dependency
Go-org
dependency
go-rpmutils
dependency
go-sql-driver mysql
dependency
go-swagger
dependency
go-version
dependency
go-webauthn
dependency
gocron
dependency
Golang
dependency
goldmark
dependency
goquery
dependency
Goth
dependency
grpc-go
dependency
happy-dom
dependency
Helm
dependency
image-spec
dependency
jsonschema
dependency
KaTeX
dependency
lint
dependency
MariaDB
dependency
Mermaid
dependency
minio-go
dependency
misspell
dependency
Monaco
dependency
PDFobject
dependency
playwright
dependency
postcss
dependency
postcss-plugins
dependency
pprof
dependency
prometheus client_golang
dependency
protobuf
dependency
relative-time-element
dependency
renovate
dependency
reply
dependency
ssh
dependency
swagger-ui
dependency
tailwind
dependency
temporal-polyfill
dependency
terminal-to-html
dependency
tests-only
dependency
text-expander-element
dependency
urfave
dependency
vfsgen
dependency
vite
dependency
Woodpecker CI
dependency
x tools
dependency
XORM
Discussion
duplicate
enhancement/feature
forgejo/accessibility
forgejo/actions
forgejo/api
forgejo/branding
forgejo/ci
forgejo/documentation
forgejo/email
forgejo/federation
forgejo/furnace cleanup
forgejo/i18n
forgejo/moderation
forgejo/privacy
forgejo/release
forgejo/scaling
forgejo/security
forgejo/time-tracker
forgejo/ui
forgejo/wiki
Gain
High
Gain
Nice to have
Gain
Undefined
Gain
Very High
good first issue
Incompatible license
issue
closed
issue
do-not-exist-yet
issue
open
manual test
Manually tested during feature freeze
OS
FreeBSD
OS
Linux
OS
MacOS
OS
Windows
QA
regression
release blocker
Release Cycle
Feature Freeze
release-blocker
v7.0
release-blocker
v7.0.1
release-blocker
v7.0.2
release-blocker
v7.0.3
release-blocker
v7.0.4
release-blocker
v8.0.0
release-blocker/v9.0.0
run-end-to-end-tests
test
manual
test
needed
test
needs-help
test
not-needed
test
present
untested
valuable code
worth a release-note
User Research - Accessibility
User Research - bug
User Research - Config (instance)
User Research - Dashboard
User Research - documentation
User Research - Errors
User Research - feature
User Research - federation
User Research - Filters
User Research - In the Future
User Research - Labels
User Research - Moderation
User Research - Needs Input
User Research - Notifications
User Research - release
User Research - Repo creation
User Research - Repo Units
User Research - security
User Research - Settings (in-app)
User Research - testing
User Research - UI
User Research - UX
No milestone
No project
No assignees
15 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: forgejo/forgejo#59
No description provided.