If I upload somebody else's GPL code to GitHub, I also can't grant to GitHub the (implicit) legal rights to use that code in Copilot, because they are not mine to give.
I could previously mirror GPL code, because the GPL granted me the rights I need to grant GitHub as part of their ToS; but if they change their ToS, or if the meaning is changed by them adding vastly different features to their Service, this becomes a problem.
Can you explain what limitation in GPL would prevent someone from using it as training data? Also, if you are not allowed to upload GPL to GitHub, seems like the right answer is don't.
GPL does not prevent someone from using it as part of something else, so long as that other thing abides to the terms too. In particular, GPL and many open-source licenses require attribution. The fact that Copilot spits out code from other places without attribution clashes with that limitation.
Whether you're allowed to upload GPL code to GitHub or not depends on whatever their Service is at the moment, since the terms say you grant them all the rights "necessary to provide the Service".
I could previously mirror GPL code, because the GPL granted me the rights I need to grant GitHub as part of their ToS; but if they change their ToS, or if the meaning is changed by them adding vastly different features to their Service, this becomes a problem.