Skip to main content

Breaking Github Down

· 3 min read

During my mid semester exams, one night I was getting bored so I decided to check how to break the most used code hosting website GitHub. I wrote a script[1] to add infinite commits to a repository named “Commiter”[2]. It added a dot at the end of a text file after every commit. The script pushed to the master branch after every 10,000 commits and then after 1,00,000 commits it deleted the repository and then cloned it back with just the last commit. I had to do it because after a large number of commits the directory size was quite large(approx 7–9 GBs).

With the help of this script I was able to find three bugs on GitHub after which they blocked my repository[2] .

  1. Z-index for commit label of contribution graph was not proper :

Below is the screenshot of the issue I am talking about.

Issue #1

The label for the commit number should be above the graph. I got the following response for this issue.

Reply for issue #3

2. Latest commit info was not loading :

After some days the I noticed that the GitHub was failing to load the latest commit information on the repository homepage.

Issue #2

And for this issue I got the following reply.

Reply for issue #2

3. Contributions graph failing to load :

According to me this was a major bug. The contributions graph stopped loading. It showed the below screen for hours and then the page said “Failed to load contributions graph”.

Issue #3

Sadly this was the last issue I was able to track. After reporting this people at GitHub disabled access to my repository. The reason stated by them was :

The repository you’re inquiring about, DefCon-007/Commiter, has been deemed abusive to our system and we have disabled it.

Large numbers of commits do not lend themselves well to versioning with Git and performance issues with a repository of this size can endanger the availability of your repo as well as other user’s repositories. Additionally, the pattern of your commits is very different than that which Git was meant to handle, and therefore consumes far more resources than a normal Git repository of its size.

And at the end they clearly mentioned that the repository access will not enabled again.

P.S. : I was able to reach around 6,567,567 commits.

So this was my story how I used my mid semester exam frustration to do some mischief with GitHub.

References :