New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Federation for organization, repositories and users #1612

Open
JonasFranzDEV opened this Issue Apr 26, 2017 · 24 comments

Comments

@JonasFranzDEV
Member

JonasFranzDEV commented Apr 26, 2017

See https://owncloud.org/features/federation/

I would like to see a feature like the federation feature of next cloud. It gives the ability to share repositories, organizations or users between multiple Gitea instances.

This has the advantages that business users could share their projects with other companies. This feature would reduce the management and administrativ overhead.

This makes it easier for beginners to start with Gitea.

It could uses the "Mirror"-feature of Gitea.

@kolaente

This comment has been minimized.

Member

kolaente commented Apr 26, 2017

It would probably be enough to support federated repositories

@JonasFranzDEV JonasFranzDEV changed the title from Federated organization, repositories and users to Federation for organization, repositories and users Apr 26, 2017

@JonasFranzDEV

This comment has been minimized.

Member

JonasFranzDEV commented Apr 26, 2017

@kolaente The federation feature make explicitly for users sense. If you want to share repositories you should use the mirror feature. But is would be very convenient for the project manager to add users from other git instances.

@strk

This comment has been minimized.

Member

strk commented Apr 26, 2017

See also #184 (is this a duplicate of that?)

@kolaente

This comment has been minimized.

Member

kolaente commented Apr 26, 2017

@strk kind of, but i think this one goes further

@JonasFranzDEV

This comment has been minimized.

Member

JonasFranzDEV commented Apr 26, 2017

@strk Kind of. But this issue includes a full integration of the federation feature for organization not only for pull requests.

@strk

This comment has been minimized.

Member

strk commented Apr 26, 2017

@JonasFranzDEV

This comment has been minimized.

Member

JonasFranzDEV commented Apr 26, 2017

@strk I agree with the idea to split this thing into many tickets. This ticket might be the user federation ticket doesn't it? But I don't want authentication for users of other platforms. I want the ability to add other users. The user will receive an invite from the user's Gitea instance. He will access the repository or organization from the his instance.

@strk

This comment has been minimized.

Member

strk commented Apr 26, 2017

@JonasFranzDEV

This comment has been minimized.

Member

JonasFranzDEV commented Apr 26, 2017

I think that the webfinger standard might be a good solution. But I think that it also could conflict with the git email of an user.

@strk

This comment has been minimized.

Member

strk commented Apr 26, 2017

@lunny lunny added this to the 2.x.x milestone Apr 27, 2017

@schmittlauch

This comment has been minimized.

Contributor

schmittlauch commented Jun 28, 2017

Regarding "what standard do we want to choose" I just want to point you to ActivityPub which is currently being finished by the Social Federation working group of the W3C. Some project implementing it (or currently working on that) are pump.io, Mastodon and MediaGoblin.

They don't use WebFinger though as they dislike the idea of a fixed .well-known path, but there are ideas about interoperability.

@jas99

This comment has been minimized.

jas99 commented Feb 26, 2018

This feature will be truly game changer; keybase.io recently came out with client side encrypted git, thats also interesting.

@MatejLach

This comment has been minimized.

MatejLach commented Apr 19, 2018

Just want to point out that ActivityPub is now done.

Adding support for AP would make Gitea compatible with a growing number of federated servers, such as Mastodon, PeerTube, NextCloud and HubZilla, broadening its reach considerably, not to mention a standout differentiator against GitLab.
It would also have the potential to dethrone GitHub as the go-to hosting for open-source projects, since most are here for the community pull request workflow that AP would allow in a decentralised manner, increasing privacy and eliminating a single point of failure for a large percentage of the free software community.

Anyway, my hope is this gets implemented, it has the potential to be revolutionary!

@tboerger

This comment has been minimized.

Member

tboerger commented Apr 20, 2018

As already stated within the chat, ActivityPub in go is a PITA because it's hard to do in a static language like go.

@MatejLach

This comment has been minimized.

MatejLach commented Apr 20, 2018

@tboerger Interesting. The ActivityPub spec is quite inheritance-heavy OO, but that should be possible to model in Go with struct embedding, however as far as I know, there's nothing like serde in Rust (https://docs.serde.rs/serde_json/value/index.html), which simplifies things quite a lot, however there's some effort to implement ActivityPub in Go, which may be a good start since it not only already implements json-ld parsing, but also defines the core vocabulary for ActivityStreams.

What specific annoyances are you thinking of here?

@jas99

This comment has been minimized.

jas99 commented Apr 20, 2018

@yookoala

This comment has been minimized.

yookoala commented Jun 4, 2018

Relevant proposal in gogs repository:
gogs/gogs#4437

In Gitlab's repository:
https://gitlab.com/gitlab-org/gitlab-ee/issues/4517

@cwebber

This comment has been minimized.

cwebber commented Jun 4, 2018

Hi! ActivityPub co-editor here. I'm fairly busy at the moment but I'd like to see this happen... if you need questions feel free to ping me, or ask in #social on irc.w3.org

@cjslep

This comment has been minimized.

cjslep commented Jun 4, 2018

Please do not hesitate to reach out to me on Mastodon for any questions/concerns/comments surrounding the https://github.com/go-fed/activity library that @jas99 mentioned. I obviously have a vested interest in the outcome of the decision, but would happy to provide candid information about my experiences working in the go+ActivityPub intersection. I agree with @tboerger that implementing ActivityPub in go is a steep cliff.

@lunny

This comment has been minimized.

Member

lunny commented Jun 5, 2018

Maybe we could create a new repository named index and set up the new domain index.gitea.io to do that?

@JonasFranzDEV

This comment has been minimized.

Member

JonasFranzDEV commented Jun 5, 2018

Why do we need an index server? @lunny

@jaywink

This comment has been minimized.

jaywink commented Jun 5, 2018

Would be awesome if we could have different projects discussing a common implementation of the ActivityPub protocol (ie using the same extension for verbs, etc). This would enable users of gitea, gogs and gitlab to work together seamlessly just like users of various social media platforms that federate can discuss seamlessly.

Could this be the place? -> https://github.com/git-federation/gitpub

@JonasFranzDEV

This comment has been minimized.

Member

JonasFranzDEV commented Jun 5, 2018

@jaywink great idea!

@r0bbie

This comment has been minimized.

r0bbie commented Jun 6, 2018

This would be amazing! I think Nextcloud (/Owncloud) is the perfect example of how this could work with the ideal implementation, as @JonasFranzDEV suggested.

With Nextcloud, if I want to share a folder with a user on another instance, I can easily do so and setup a shared folder across both instances.

If I could do that for a repository hosted on my Gitea instance, granting a user on another federated instance access to the repo, with that repo then appearing in their Gitea interface with full ability to interact with issues etc (with some clear denotation in the UI that this repo was hosted on another instance), that would be pretty amazing.

The goal being discussed to adopt a shared standard between Gitea and other open source self-hosted projects (such as GitLab CE) definitely makes sense, and it would be great if this was adopted allowing federation between Gitea, Gogs, GitLab, etc.. Migrating from GitHub for private projects is easy with nothing really lost, but for public open source projects we need to acknowledge a big benefit of GitHub is the community. I've discovered a lot of projects actually on GitHub. If there was some way of federating popular projects, users activity feed (i.e. being able to follow a friend on another instance and follow their activity, liked projects, with privacy settings taken into account etc) would be excellent - if that would be possible.

Federated pull requests would be a great first step towards this (#184), and likely the most crucial missing feature at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment