If a user has made a commit to a public repository on GitHub, then their email address is more than likely publicly accessible.
Give it a try. Search for any GitHub username below, and see if you can find their email address.
GitHub uses the email address associated with a GitHub account to link commits and other activity to a GitHub profile. When a user makes commits to public repos their email address is usually published in the commit and becomes publicly accessible, if you know where to look.
GitHub provide some instructions on how to prevent this from happening, but it seems that most GitHub users either don't know or don't care that their email address may be exposed.
Finding a GitHub user's email address is often as simple as looking at their recent events via the GitHub API.
Sometimes commits from other users who have committed to the same repo appear in a user's recent events feed.
It's hard to be certain which email address belongs to a particular GitHub user, but I've used the frequency that an email address appears in a user's recent commits, and the string similarity with their name and username to make an educated guess.