Federated Git
This are some consideration about the "let's build a decentralized git solution" after the GitHub acquisition by Microsoft.

Let's start with the base: git is already decentralized. All you need is an url where other people can pull you code.
The workflow requires a way to let know other contributor about your clone and your work branch, and let them to merge it into their repos. Usually, a mailing list is used. This is the way kernel development works.
Nothing prevents you from using a federated social profile to do this (e.g, a forum profile on Friendica)
Then you need something where bug are reported. Another mailing list, another social profile? Can be.

What github/gitlab/gitea/wathever give you as a plus is a "home page" for the project where development and bug reports are easily managed and discoverable.
The downside is any of this solution require contributor to have an account there, also the self-hosted ones.

In my view, a federated replacement to git[hub,lab,ea] is not something that shout out an activity every single time a commit is inserted in the repo, but something that let me use the existing distribuited nature of git, giving me "enhanced" tools I can use with my federated identity, from my federated profile.

Ideally, I must be able to login with my federated identity (see Zot! and friendica remote auth, or OpenID) into the main instance to post bug reports, which lets me clone the repo in my instance (if supported) with a click of a button, from where I can send merge request.
Or I can just have my clone on cgit. so I must be able to initiate a merge request from the main instance. Then discussions in bug reports and merge request are federated, so I can interact with them in my timeline, If I want.
I've read somewhere that today was a WG meeting of the AP people or so to discuss something... you should join the meeting I guess ;-)
1 comment Show more...
Note that Gitea lets you sign-in with OpenID (just saying). I know it's not enough, but is a start. With your OpenID created local account (yes, you still need to be recognized locally, to get permissions) you can file an issue and report there the URL of your clone from which you are requesting a pull.

But a "pull request" is more than that: it is a thread in which a patch is being discussed and in which you can always see (a click away) the _current_ state of that _growing_ patch. The patch grows following a discussion in the thread.

Federated pull requests have been asked for in Gitea via https://github.com/go-gitea/gitea/issues/184 (want to help ? Go is fun !)