The Github Maximizer

Github is a portfolio for people in the tech industry. Looking at the typical profile, I came to loathe contribution graph which really only signals that your organization uses Github. For everyone else, it’s a sparse graph of punctuated contribution. With this project I highlight the deficiencies in such summary representations of your merits by automating the act of contributing.

To start, I read through Github’s documentation to learn how they counted your contributions. The gist of it is that any commit or comment associated with your account will count as a contribution. I then ran some experiments to test this commit parsing. How do they link commits to your account? What time stamps do they use? Surprisingly, I found that they used the time stamp of the commit for the time stamp of the contribution. By messing around with the commit times, I was able to make contributions before Github even existed. This means there’s no check against real world time and I can touch up my contribution graph for any day in the past.

Given this, the approach is simple. My script will create a new Github repository, generate an initial commit tree, and push the commits upstreams. A Poisson distribution generates time stamps for the commits to impart a more organic look to the graph. After that, we go into Cron mode and push new commits every night.

To create that initial repository I used this Github module to outsource the OAuth and REST calls. For the random distribution used Numpy.random. Shell commands to git created the commit tree and pushed the changes upstream.

I’m pleased with the results and my contribution graph looks great now. Originally, I wanted to do some random code generation but I liked the idea of people discovering this project quickly and getting a chuckle out of it

github_maximizer on Github