• @[email protected]
    link
    fedilink
    76
    edit-2
    2 months ago

    Misleading title.

    If my thing was public in the past, and I took it private, the old public code is still public.

    That’s… How the Internet works anyway.

    Edit: See Eager Eagle’s better explanation below.

    TL;DR - be careful who you allow to fork your private repos. And if you need to take a public repo, which has forks, private, consider archiving the repo and doing all the new work in a new repo. Which is arguably the reasonable thing to do anyway.

    Still a misleading title. This isn’t a way to break into all or even most of your private repositories.

    • @morph3ous
      link
      292 months ago

      That is not exactly what they are saying. You could create a private fork of a public repo and the code in your private fork is publicly accessible.

      • Eager Eagle
        link
        English
        292 months ago

        I don’t think you can create private forks from public repos (the fork is public upon creation). This is more like the opposite:

        If there’s a private repo that is forked and the fork is made public, further changes to that original private repo become public too, despite the repo remaining private and the fork not being synced.

    • @[email protected]
      link
      fedilink
      122 months ago

      Misleading title.

      The title literally spells out the concern, which is that code that is in a private or deleted repository is, in some circumstances, visible publicly.

      What title would you propose?

      If my thing was public in the past, and I took it private, the old public code is still public.

      The “Accessing Private Repo Data” section covers a situation where code that has always been private becomes publicly visible.

  • @visor841
    link
    49
    edit-2
    2 months ago

    While this is still a massive problem, it does require a public fork at some point. So if you have a private repo that has never had a public fork, you should be safe.

    • Aatube
      link
      fedilink
      112 months ago

      (unforked repos that are forks are also affected.)

      • @[email protected]
        link
        fedilink
        72 months ago

        Yes, but only in very limited circumstances. If you:

        1. fork a private repo with commit A into another private repo
        2. add commit B in your fork
        3. someone makes the original repo public
        4. You add commit C to the still private fork

        then commits A and B are publicly visible, but commit C is not.

        Per the linked Github docs:

        If a public repository is made private, its public forks are split off into a new network.

        Modifying the above situation to start with a public repo:

        1. fork a public repository that has commit A
        2. make commit B in your fork
        3. You delete your fork

        Commit B remains visible.

        A version of this where step 3 is to take the fork private isn’t feasible because you can’t take a fork private - you have to duplicate the repo. And duplicated repos aren’t part of the same repository network in the way that forks are, so the same situation wouldn’t apply.

        • Aatube
          link
          fedilink
          42 months ago

          The second situation you listed is incredibly common, as the blog post explains.

  • @Asudox
    link
    142 months ago

    Im thinking of self hosting Forgejo one day.

    • @Deckweiss
      link
      122 months ago

      I do and it is pretty easy with docker compose.

    • Aatube
      link
      fedilink
      -1
      edit-2
      2 months ago

      sourcehut is much better if you can pay

      Edit: Only repo hosters need to pay. Everything else is free.

      • @Asudox
        link
        15
        edit-2
        2 months ago

        I want forgejo for its upcoming federation feature tbh.

        • @[email protected]
          link
          fedilink
          -12 months ago

          Considering that git doesn’t need federation, and email is the grandfather of federation, sourcehut has a working version of it this very moment.

            • NekuSoul
              link
              fedilink
              62 months ago

              I’d guess because the same argument could be made for the website you’re on right now. Why use that when we could just use mailing lists instead?

              More specifically: Sure, Git is decentral at its core, but all the tooling that has been built around it, like issue tracking, is not. Suggesting to go back to email, even if some projects still use it, isn’t the way to go forward.

              • Aatube
                link
                fedilink
                32 months ago
                1. Git has bundled tooling to support pushing MRs to mailing lists.
                2. Email is existing infrastructure. I’m the kind of guy who hates the powerbanks solar route and prefer selling excess solar power to the grid instead. This also has the benefit on allowing you to customize your notifications from subscribed repositories however you like.
                3. The reason we’re not on a mailing list is because we have an extra feature mailing lists can’t offer: reacting, be that upvoting, downvoting, or bookmarking/boosting. Meanwhile, you don’t need that on a development forum. You do have editing, though. Hopefully everyone’s using a client that supports undo.
                4. IMO, the slower speed of email makes people think more before they send.
                • NekuSoul
                  link
                  fedilink
                  3
                  edit-2
                  2 months ago

                  I’m sorry to be blunt, but mailing lists just suck for group conversations and are a crutch that only gained popularity due to the lack of better alternatives at the time. While the current solutions also come with their own unique set of drawbacks, it’s undeniable that the majority clearly prefers them and wouldn’t want to go back. There’s a reason why almost everyone switched over.

            • @[email protected]
              link
              fedilink
              42 months ago

              In the beginning the Universe was created. This has made a lot of people very angry and been widely regarded as a bad move.

      • @[email protected]
        link
        fedilink
        62 months ago

        What makes sourcehut better?

        From a self-hosting perspective, it looks like much more of a pain to get it set up and to keep it updated. There aren’t even official Docker images or builds. (There’s this and the forks of it, but it’s unofficial and explicitly says it’s not recommended for prod use.)

        • Aatube
          link
          fedilink
          32 months ago

          It also supports browsing without JavaScript, if that’s your thing.

        • Aatube
          link
          fedilink
          2
          edit-2
          2 months ago

          Sourcehut has straightforward much better UI, UX, and features (more than gitea/forgejo but less than GitLab ig). I really dig the subdomain design.

          Issues and PRs are conducted through email, essentially making that part federated and signup-less.

          I’ve seen many pieces of software that claim to be beta/not used for prod but are actually bedrock solid.

  • Lung
    link
    112 months ago

    Damn that’s a huge problem

  • Eager Eagle
    link
    English
    112 months ago

    The takeaway is to not use forks if there are changes you want to keep private.

  • @[email protected]
    link
    fedilink
    82 months ago

    After reviewing the documentation, it’s clear as day that GitHub designed repositories to work like this.

    Sounds like they wanted to find a problem but it turned out to be a feature.

    • Shadow
      link
      fedilink
      92 months ago

      Yeah, pretty much everyone agrees that once something goes to git it lasts forever.

      The fact they call out that secret keys must be rotated if committed, makes me think they thought just deleting a commit was enough 🤦

    • Eager Eagle
      link
      English
      12 months ago

      a problem that is documented is obviously a feature

  • youmaynotknow
    link
    fedilink
    7
    edit-2
    2 months ago

    Just this week I migrated all my repos from github to Gitlab. And only because I can’t host my own gits just yet, but will do it soon enough.