Implement viewing a project from an other instance
Problem to solve
This task comes after the implementation of ActivityPub for social features, implementing cross-instance search, and is one step leading us to cross-instance merge requests.
To be able to discuss issues/merge requests from a project on an other instance or fork that project, we need to be able to display that project in our own instance : we can't just redirect to that instance project page, because our user won't be authorized there.
Proposal
I'd like to avoid designing too precisely just yet as for now I have only theoretical knowledge about ActivityPub : once we're done implementing social features and we have actual real world experience with the standard, we may find it helps with such task as well, or we may be inspired by other implementations solutions.
- we can implement a limited specific view for cross-instance projects, as we just need it for forking, creating/discussing issues and discussing merge requests
- we may want to view repos from instances we don't know yet. As such, we should offer a mechanism to allow user to paste the URL they want to fork when search doesn't find it.
Fediverse apps like Mastodon and Lemmy rely on this last point to discover new instances : when an username or community name doesn't pop up in search (because servers are not federated yet together), users can just past the URL of the thing they want to follow in the search, and once they follow that target, the instance starts federating with its server, now knowing a new peer.
We may not want to replicate that behavior exactly, as we may want to only federate with approved whitelist of peers, but the idea of being able to paste directly a repos URL to visualize it could still be useful here.