Add two Forgejo federation drafts
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
parent
1d4dd5d96e
commit
59ae6e5d13
31
content/posts/answering-forgejo-federation-questions.md
Normal file
31
content/posts/answering-forgejo-federation-questions.md
Normal file
|
@ -0,0 +1,31 @@
|
|||
---
|
||||
title: "Answering Forgejo Federation Questions"
|
||||
date: 2023-01-10T21:47:26Z
|
||||
draft: true
|
||||
description: "This post answers some commonly asked questions about Forgejo federation"
|
||||
type: "post"
|
||||
tags: ["federation", "forgejo", "activitypub"]
|
||||
---
|
||||
|
||||
|
||||
### Is Forgejo federation development being worked on right now?
|
||||
|
||||
Yes. You can find an up-to-date task list [here](https://codeberg.org/forgejo/forgejo/issues/59).
|
||||
|
||||
### When will federation be released?
|
||||
|
||||
Forgejo federation will be merged into mainline Forgejo through two (or more) pull requests. The first pull request, which will be submitted later this month, includes backend support for some basic federation features like following remote users, opening issues on remote repositories, and blocking instances. A second pull request will include a UI for federation, more moderation features, and backend support for federating all of Forgejo's features, such as adding remote users as repository collaborators. Federation will most likely be included in Forgejo 1.19, which will be released in a few months.
|
||||
|
||||
### Will Gitea also gain federation?
|
||||
|
||||
Most likely yes. We want as many forges as possible to be federated, so we will contribute the federation code upstream to Gitea.
|
||||
|
||||
### What's F3 and how does it relate to federation?
|
||||
|
||||
A lot of difficult and seemingly unrelated problems like migrating projects, federated pull requests, and mirroring issues actually have the same solution. A project's code is stored using Git and can be easily migrated, but the issues, pull requests, and project metadata are stored in the database. If only we had a common format for representing all the various components of a project and code to serve and store project components using this format... then mirroring issues would be as easy as fetching remote issues in this format and storing them on our instance. I know, [let's make our own format](https://xkcd.com/927/)!
|
||||
|
||||
And that's why F3 was created. It's a JSON format closely based on how projects are internally stored in Forgejo's database. Unfortunately, there are also 14 competing standards, most notably the [ForgeFed vocabulary](https://forgefed.org/vocabulary.html). Since the rest of Forgejo federation uses ForgeFed, we're currently spending a lot of effort on merging the F3 and ForgeFed formats into a single standard.
|
||||
|
||||
### Further reading
|
||||
|
||||
If you thought this post was helpful, you should read [Forge Federation Myths](/posts/forge-federation-myths/). Note that it predates Forgejo, so you might want to mentally `s/Gitea/Forgejo/g` while reading it.
|
54
content/posts/forgejo-federation-design-overview.md
Normal file
54
content/posts/forgejo-federation-design-overview.md
Normal file
|
@ -0,0 +1,54 @@
|
|||
---
|
||||
title: "Forgejo Federation Design Overview"
|
||||
date: 2023-01-09T21:19:27Z
|
||||
draft: true
|
||||
description: "A deep dive into the design of Forgejo federation"
|
||||
type: "post"
|
||||
tags: ["forgejo", "federation", "activitypub"]
|
||||
---
|
||||
|
||||
|
||||
This post describes the details of the design of [Forgejo federation](https://codeberg.org/forgejo/forgejo/issues/59).
|
||||
|
||||
|
||||
## Identity
|
||||
|
||||
Forgejo, like most ActivityPub implementations, uses WebFinger to resolve @user@instance.com usernames to IRIs.
|
||||
|
||||
Likewise, Forgejo signs all activities using HTTP signatures
|
||||
|
||||
An interesting application of this is private repository federation.
|
||||
|
||||
|
||||
## Common data format
|
||||
|
||||
A lot of seemingly difficult problems like federated pull requests, mirroring entire projects including issues, and migrations are
|
||||
|
||||
|
||||
F3, ForgeFed vocabulary
|
||||
|
||||
Mirroring
|
||||
|
||||
Migrations
|
||||
|
||||
|
||||
## Consistency
|
||||
|
||||
Write about primary-secondary replication for federated collaborators
|
||||
|
||||
Performance/scalability
|
||||
|
||||
Redirect Git pushes
|
||||
|
||||
|
||||
## Moderation
|
||||
|
||||
Blocking users and instances
|
||||
|
||||
Rate-limiting and spam
|
||||
|
||||
|
||||
## UI
|
||||
|
||||
Better AP UI? Fetch data from original instance instead of your instance? Performance problems?
|
||||
|
Loading…
Reference in a new issue