ashkulz / committers.top

CLI tool which uses the GitHub GraphQL API to rank users according to number of contributions, and corresponding static website.
https://committers.top
MIT License
204 stars 28 forks source link

Github commits, pr and other contributions spam(s) #22

Closed mrepol742 closed 7 months ago

mrepol742 commented 7 months ago

It has repeatedly occurred that users are spamming contributions in order to achieve the highest ranking.

ashkulz commented 7 months ago

And how could that be fixed? Remember, this is all run automatically without any human intervention and I don't think manual curation is going to happen :man_shrugging:

mrepol742 commented 7 months ago

we could say, for example a single or multiple commit in a one repo is equal to 1 contribution.

if the user contributed to 5 repositories in 30 days that would be 150 contributions.

or ignored repository that is high as 5k commits or 20k commits (like codersrank did) or maybe there is even much better than this.

ashkulz commented 7 months ago

@mrepol742 unfortunately, anything like that is not possible via the GraphQL API. It's impossible to iterate through every user/repository and exclude such contributions -- running this for all countries for itself takes 2+ days so not sure. Maybe ask GitHub to change the API to provide this information? :thinking:

garronej commented 5 months ago

What about implementing a ban list? We could create a list of usernames that are excluded from appearing on the leaderboard. Establishing such a list would take only a few minutes, as it's quite clear who is using bots. Moreover, implementing this filter would require just a single line of code. I believe this approach would significantly enhance the credibility of commiters.top. Additionally, it might deter individuals from using bots to climb the ladder due to the fear of being banned. I am willing to submit a PR to implement this feature if you're open to the idea.

ashkulz commented 5 months ago

@garronej like I said earlier, the non-human intervention part is very important. What if someone was making some changes but stops later? They'd still be forever excluded. Also, how do you determine if someone should be excluded or not? There's no black-and-white criteria which can be used to do that.