[FEAT] implement federation #59
Labels
No labels
arch
riscv64
backport/v1.19
backport/v1.20
backport/v1.21/forgejo
backport/v10.0/forgejo
backport/v11.0/forgejo
backport/v12.0/forgejo
backport/v13.0/forgejo
backport/v14.0/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
code/actions
code/api
code/auth
code/auth/faidp
code/auth/farp
code/email
code/federation
code/git
code/migrations
code/packages
code/wiki
database
MySQL
database
PostgreSQL
database
SQLite
dependency-upgrade
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/branding
forgejo/ci
forgejo/commit-graph
forgejo/documentation
forgejo/furnace cleanup
forgejo/i18n
forgejo/interop
forgejo/moderation
forgejo/privacy
forgejo/release
forgejo/scaling
forgejo/security
forgejo/ui
Gain
High
Gain
Nice to have
Gain
Undefined
Gain
Very High
good first issue
i18n/backport-stable
impact
large
impact
medium
impact
small
impact
unknown
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
problem
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-all-playwright-tests
run-end-to-end-tests
test
manual
test
needed
test
needs-help
test
not-needed
test
present
untested
User research - time-tracker
valuable code
worth a release-note
User research - Accessibility
User research - Blocked
User research - Community
User research - Config (instance)
User research - Errors
User research - Filters
User research - Future backlog
User research - Git workflow
User research - Labels
User research - Moderation
User research - Needs input
User research - Notifications/Dashboard
User research - Rendering
User research - Repo creation
User research - Repo units
User research - Security
User research - Settings (in-app)
No milestone
No project
No assignees
14 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
forgejo/forgejo#59
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Update June 2024: this issue is no longer updated. Progress on federation can be followed from:
forgejo/federationThis issue tracks the progress of implementing federation in Forgejo.
Ongoing tasks (updated monthly)
Tasks backlog
Discovery
This is done.
WEB_DOMAINvariable. This enables federation for instances using a subdirectory)Actors
This is almost done.
ForgeFed
go-ap
Adding ForgeFed types to go-ap Mastodon discussion, mailing list discussion
Serving ActivityStreams
Processing ActivityStreams
attributedTomatches HTTP signatureDatabase representation of remote data
User eXperience and User Interface
See https://gitea.com/xy/gitea/issues/8 for discussions
authorize_interaction?uri=page (like Mastodon)Migrations
See https://gitea.com/xy/gitea/issues/9
Interoperability
Moderation
See https://gitea.com/xy/gitea/issues/10
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.
forgejo-federationbranch. If you would like to build a Docker image, there is aDockerfilein this repo. If you would like to build a binary, install Go and Node.js and then runTAGS="bindata" make.ENABLED=truein the[federation]section of your config file.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 are there are changes in the
forgejo-federationbranch 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!
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.
@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.
https://gitlab.com/groups/gitlab-org/-/epics/11247 ↩︎
https://gitlab.com/gitlab-org/gitlab/-/issues/21582 ↩︎
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.
@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.
I think GitLab's activity is a bit off topic for this issue, but here's my understanding:
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.
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.
Keep it up! May the Source be with you! Is there a group for testing calls for the federation thing?
No group yet.
Any news on this awesome project? 😃
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 :)
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 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).
<namespace>/<repo>/_diffpatch/<branch>/endpoint ignores the metainformation within the patch #3063'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?
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?
This issue is no longer updated. Progress on federation can be followed from:
forgejo/federationAlthough 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.
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?
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?
@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.
forgejo-actions referenced this issue from forgejo/website2025-04-24 19:05:06 +02:00
forgejo-actions referenced this issue from forgejo/website2025-11-27 18:11:29 +01:00