Please don’t make 2FA mandatory. I think that’s not helpful, and harmful.
I begrudgingly enabled 2FA for my GitHub account because the rust-lang org enforces it. I don’t trust the security of my phone very much (too much proprietary stuff, too hard to update), so I don’t usually put anything trustworthy on it, but now my phone is involved in GitHub logins. I can’t see that as an improvement in security, though I have to admit it probably does not decrease security either.
It does, however, pose an additional barrier of entrance. Moreover, the information for how to do 2FA without relying on proprietary software is pretty sparse; GitHub itself only recommends proprietary apps (or, alternatively, wants to know my phone number) – so I can just hope that the open-source app I picked from F-Droid is trustworthy. I consider installing proprietary software as decreasing the security of my device, so that wouldn’t have helped either.
I find it somewhat amusing that I can still log in using a password (a known-to-be-insecure authentication method) but then we paper over that using 2FA. Now that WebAuthn is becoming a thing, let’s please just use key-based logins for everything that matters? I would consider a key-based login to GitHub, with a PW-protected key, to be way more secure than 2FA where one factor is just a password and the other is a phone.
I can’t help but feel that 2FA is hyped as a solution to problems caused by passwords, and frequently touted to be way more effective than it IMHO is.