Best practice for forking Casper/Edition into a private repo

So I’ve got a site I’m going to set up for somebody, which will utilise a customised version of Casper. Although I’ve never done it before, I know I could fork Casper, make my customizations, then merge PRs as commits are made to Casper by the Ghost team (and others).

Problem is this person who I’ll be putting the site together for is heavily trolled on Twitter, and I wouldn’t want to create a theme for them out in the open (with their logo and such) which an unscrupulous troll could find on my GitHub account, download, and then create a fake publication with. Yes, I know that if a troll was determined enough they could manually re-create said customised theme on their own, but better that than hand it to them on a silver platter.

That all being so, I’m wondering if there’d be a best way to customise Casper for this situation. From what I can tell it’s not possible to fork a repo like Casper and then make it private.

But according to this Stack Overflow thread a workaround is possible, one simple method being to import a project and in the process make it private. I’ve done that, and then deleted all the branches, but I’m wondering if new commits will appear in my repo as PRs. I know I can wait until the next commit is made to Casper, but in the meantime, might anybody know if this’ll work?

Otherwise, there’s other options laid out in that thread, some entailing making a “bare clone” and “mirror push”, which I admit is all kinda Chinese to me, partially cause I don’t know the command line in the slightest.

Anybody have any experience with any of those or any other methods for creating a “fork” of Casper in a private repo which fetches new commits (as PRs, if I understand this correctly) made to the original repo?

I have a slightly custom Casper theme as well.

I am not sure about the making a repo private part with forks. But I also do the updating but on a different way.

I am using a rebate approach. Basically I always remove my changes, update the theme from upstream, then put back my changes on top.
That way I keep the history clean and on par with upstream.

I will add the real Casper repo as another git remote called upstream

git remote add upstream git@github.com:TryGhost/Casper.git

Then you need to fetch the changes:

git fetch upstream

Then do the rebase:

git rebase upstream main

This might create merge conflicts which you need to solve. Depends on how heavily you have changed the theme.

Interesting idea, thanks for the option.

I’ll keep your idea in mind for when I get started on customising Edition (have changed from Casper, but same difference for these purposes), but as I might very well go heavy on changing things I may have to forego this option.

If forking a private repo won’t be possible I’ll probably just clone Edition, apply all my customizations, then manually insert theme updates as they appear in the Edition repo. I figure it won’t be too much of a pain in the ass with GitHub Actions integrated.