Had a similar though on this.
As for your first concern I assume you already took a look at the widely used gitignore for unity projects? https://github.com/github/gitignore/blob/main/Unity.gitignore
Using this will at least ignore all that internal stuff. Your public repository will then only contain Assets, Packages and Settings.
One could also ignore the folders containing the payed assets using the .gitignore file. They would then not be uploaded to github. However, as you already said, the code would then not compile without said assets.
Guess we must wait for Acerola to respond :)