I think that federated gitlab instances could be a good next step forward for becoming independent from big companies.

At the moment I host a lot of my code to Github because of discoverability, but I do not feel comfortable with depending on Microsoft for this service. Gitlab is a self hosted Git server, but there is no way to federate the instances like on Lemmy. Are there any projects that deal with this?

  • marsara9@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Interesting idea, but just thinking out loud… Would this only work for public repos? What about private ones? For private repos how would one ensure that admins can’t just open the database and read the repository? How would you ensure the correct collaborators are the only ones who can push / merge? If a server goes down, are you stuck with a read-only repo? Do you have to just fork that repo and start again?

    While this idea might have legs, one of the key aspects with Git and places like GitHub / GitLab is backups. Personally I have my local repo on my dev-box, a self hosted server running gitbucket and finally a copy on GitHub. So I can in theory loose any two of those and still have a copy of my code somewhere.

    Now what could be interesting is if using federation we could maybe auto publish to these other off-site locations? But again how do you deal with access rights? Most of my repositories are private while I work on the MVP. So making sure that those repos are secure and undiscoverable while initial develop is underway and ensuring that only those that I authorize to make changes to it can do so. And then finally if I lose access to my “user” because a server went down, how do I make sure I can still contribute?

    Interesting idea, just needs some questions answered, in my opinion.

    • TragicNotCute@lemmy.worldM
      link
      fedilink
      English
      arrow-up
      0
      ·
      1 year ago

      Yup. This would be my concern as well. I would be very hesitant to publish private projects there. And if I were a business, I certainly wouldn’t trust it.

          • rist097@lemmy.worldOP
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            Ah ok, but the idea is to give you flexibility. At the moment you can host your Gitlab instance, but your public projects on your instance can only be found by googling.

            The idea behind federation in this case is to have public projects be discoverable across instances, that you can star a project, open issue and make pull request across instances.

            • marsara9@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              1 year ago

              Ignoring the public/private repo issue for the moment. Let’s assume this is only for FOSS projects. How do solve the issues of Authorization and Recoverability?

              In theory you could implement an allowlist instead of the current ban list that Lemmy and others use for Communities. But this raises a 2nd problem, recoverability…

              If the instance that contains my account goes down how can I ensure that I can still contribute to my repositories? I could create accounts on multiple instances and authorize all of them, but this increases the attack surface of someone gaining access to one of my accounts. At least with a centralized backup like GitHub, should I forget my password I at least temporarily have my SSH/GPG keys. And if I lose my SSH/GPG keys I still have my GitHub account to upload new ones to. Maybe a variation on ActivityPub could be created that uses SSH/GPG keys instead of an account name?

              So maybe not unsolvable but at least some very interesting problems to solve first.