- So I want to use some code under GPLv3 for a project do we have to use GPLv3?
- The project I’m making costs money am I allowed to have free GPL code in a paid project?
- Do I have to make my source code on GitHub or can I have it so they have to buy it to get it/request it?
Basically, yes, you do.
It is absolutely fine to sell GPL-covered code, but you must deliver freedom along with the binary. That is, you must deliver the complete corresponding source also, and both source and binary must be covered by GPLv3, which will allow recipients to share them (whether modified or unmodified) with others, on those same terms. Note that, as Gnasher729 points out below, though you may charge for the binary, you may not charge extra for providing this source, except in one case, where you may only charge on a reasonable-cost-recovery basis.
GPLv3, like GPLv2 before it, requires only that source be available to those who have received the binary, so no, you don't have to put it on GitHub. GPLv2 (s3b) was OK with simply offering source to any of your customers on request; GPLv3 in s6b restricts that option to people who ship software inside physical products, so unless you're doing that, you will need to provide source to all customers who purchase the binary.
For the avoidance of doubt, note that you are not allowed to try to contractually restrict what source recipients can do with that source - they must get it under the terms of GPLv3, and that (in s10) says that other restrictions can be ignored.