The Contributor and Great Contributor badges are assigned based on the email address used in GitHub commits, not the email address used for GitHub authentication. gerhard explains that the email address in commits (e.g. "Foo Bar <foo.bar@example.com>") must match the email address used on Discourse.
cpradio is having trouble getting the badges despite having accepted PRs, and gerhard provides code from the plugin source to illustrate the issue. cpradio discovers that the issue is due to a change in their email address over a year ago, which cannot be easily updated.
The badges can be manually awarded by the team, but gerhard notes that the plugin needs an update to recognize all pull requests. downey provides a link to a related discussion on improving the plugin.
Did you use your current Discourse email address for all your commits? It doesn’t matter which email you use for authentication on Github. The only thing that matters is the email address that you include in your commits. When you commit as "Foo Bar <foo.bar@example.com>" then you need to use "foo.bar@example.com" here on meta too.
You won’t get the badge as long as your email addresses do not match. But I guess someone from the team could grant to the badge manually.
Take a look at the plugin source in order to see what’s happening. I highlighted the important parts:
No, it definitely isn’t that… As I see many others with the badges, but it must something with the way the prior commits are. So there is likely nothing I can do about it now.
But the plugin will need an update anyway since some of the pull requests are not recognized anymore. The “Merge pull request” commits are missing… Maybe it’s time to use the Github API.
Oh, and this simple script lists the number of pull requests and the corresponding email addresses the same way as the plugin does:
lol, that is exactly what I was “recreating” locally right now. Fairly certain there isn’t much I can do. As the email address I started with (over a year ago), I won’t be re-enabling.