The problem with PVE in comparison to other projects is, that you cannot just start up a part of it in a container and play around with it. Most of the time, you need a dedicated VM with PVE running and try to implement the stuff on the real machine in the live code in order to have your full stack available. Of course this depends on what you try to do exactly, but in my experience it was exactly that. The actual patch you create afterwards is then send to the mailinglist for approval.
This may seem very complicated to people used to GitHub/GitLab and such, but it's much slicker, faster and can completely be done by keyboard without any mouse interaction. So you can get more done in the same time (if you're used to it).
I'd recommend starting with a small bug fix for something that annoys you, and asking before implementing bigger features to avoid double work or work on features that would be rejected (e.g., on architectural grounds or for similar fundamental reasons).
we have no plans for switching to gitlab or something similar - our workflow works quite well for us (and is one we share with two of our main upstreams - the linux kernel and Qemu).