If you’re one of the over 94 million developers using GitHub across 330+ million repositories, you’ll be more than a little concerned if one day you find that the service isn’t performing as usual.
But fear not! If that happens, you can get to the root of the problem with minimal effort, be it a GitHub platform issue or a technology- or user-related issue on your end.
In this article, we’ll consider the various scenarios that can result in GitHub not working and the steps you can take to address them, including falling back on a comprehensive backup solution such as Rewind Backups for GitHub.
What is GitHub, and why is it so popular?
GitHub is a popular choice for developers looking to host and version control their source code repositories. GitHub is renowned for its iterative developer experience improvements. It regularly releases new features focused on advanced automation and fostering closer collaboration between development teams. Some of its most notable toolsets include:
- GitHub Actions – an integrated CI/CD tool and Codespaces, a cloud development box.
- GitHub Pages – a tool that lets users host publicly or privately accessible websites from GitHub repositories in a matter of minutes.
- Server management and database configuration – all managed by GitHub on your behalf.
How to confirm it’s not just you when GitHub isn’t working
If your GitHub account is underperforming or unavailable, the first order of business is to ascertain whether it’s just you or if the GitHub platform is having issues.
Outages occur on GitHub from time to time. Earlier this year, in acknowledgment of the frequency of platform outages, Keith Ballinger, GitHub’s Senior Vice President of Engineering, had this to say:
“Over the past few weeks, we have experienced multiple incidents due to the health of our database, which resulted in degraded service of our platform. We know this impacts many of our customers’ productivity, and we take that very seriously. We wanted to share with you what we know about these incidents while our team continues to address these issues.”
Extended GitHub outages are frustrating as they can result in limited or disabled access to your account and data.
What can you do if GitHub is down?
If GitHub is unavailable, the only way to access your data is by cloning it from your Amazon S3 Bucket (if you have it connected) or your third-party backup servers.
Rewind Backups for GitHub is a popular disaster recovery service for enterprise GitHub customers. Rewind works with GitHub OAuth and is dependent on the GitHub API. You can check the GitHub API status here.
If GitHub is down, you won’t be able to log in to the regular Rewind user interface. However, if you have an ssh key linked to your GitHub account and have activated the “Clone From BackHub” feature in your account settings, you can clone your repositories directly from Rewind’s servers.
Good to Know:
Rewind Backups for GitHub was formerly known as BackHub. Rewind acquired BackHub in 2021. Despite the name change, there’s no difference between the original service provided by BackHub and Rewind Backups for GitHub.
GitHub isn’t down – what else could the problem be?
If you establish that the GitHub platform is up and running, it’s time to consider internal factors that might make your GitHub data unavailable. Here are a few common scenarios:
Accidental or malicious data deletion
An unintentional mistake or malicious act on the part of a disgruntled employee could result in a branch or repository being deleted.
The media is awash with reports of new flavors of cybercrime, and hackers are always looking for new entry points into organizations. GitHub is no exception. In December 2022, it was reported that an Iranian-backed group was using GitHub to relay malware instructions. According to a press report:
“The use of GitHub enables the attackers to evade detection more easily. The use of GitHub as a virtual dead drop helps the malware blend in. All the traffic to GitHub is encrypted, meaning defensive technologies can’t see what is being passed back and forth. And because GitHub is a legitimate service, it raises fewer questions.”
And in November 2022, Dropbox suffered a data breach from a successful phishing attack. According to GitGuardian, this is what happened:
- The attacker distributed a phishing email imitating CircleCI, the internal CI/CD platform that Dropbox used.
- The email took one victim to an imitation CircleCI login page, where they entered their GitHub credentials. CircleCI allowed users to log in with GitHub credentials.
- The imitation site then prompted the user to enter a One-Time Password (OTP) generated by a hardware authentication key.
- The hacker used this OTP and credentials to access the user’s GitHub account, where they cloned 130 internal repositories – comprising both public and private code.
Server or other local infrastructure issues
Your GitHub performance degradation or accessibility issues may be tied to server, app, memory, or connectivity problems within your environment. User error could also be a factor. Learn how to resolve the most common problems in the REST API or troubleshoot connectivity problems.
Why it makes sense to back up GitHub data
Backing up GitHub with a reliable third-party backup solution avoids creating a “single point of failure” vulnerability.
In the words of one of Rewind’s clients:
“If you’re using GitHub and your codebase resides exclusively in GitHub, you’re completely reliant on GitHub. Unfortunately, sometimes platforms do go down. We knew that if something happened to github.com, we could access a separate copy of our codebase and continue being productive until the outage was resolved. Rewind doesn’t just give us a full backup of the codebase with just a few clicks; it also gives us a business continuity plan in the event of the worst-case scenario.”
He adds that Rewind also ensures a more comprehensive restoration outcome than they would get if they simply relied on a clone:
“Some companies just create a clone of their code and save it on their on-premises infrastructure. The drawback of that approach is that you can’t recover all your metadata – all you can retrieve is your codebase.”
Another important (but not widely known) reason for backing up GitHub is the Shared Responsibility Model. Here’s how it works: Just because your data is stored in the cloud, it’s not necessarily safeguarded from loss. SaaS providers and their users share the responsibility of protecting the data stored in the platform. Most SaaS providers explicitly limit their liability for any form of data loss, theft, or compromise. Consider these provisions included in GitHub’s terms of service:
“You understand and agree that we will not be liable to you or any third party for any loss of profits, use, goodwill, or data, or for any incidental, indirect, special, consequential, or exemplary damages, however arising, that result from:
- the use, disclosure, or display of your User-Generated Content;
- your use or inability to use the Service;
- any modification, price change, suspension, or discontinuance of the Service;
- the Service generally or the software or systems that make the Service available;
- unauthorized access to or alterations of your transmissions or data;
- statements or conduct of any third party on the Service;
- any other user interactions that you input or receive through your use of the Service; or
- any other matter relating to the Service.
Our liability is limited whether or not we have been informed of the possibility of such damages, and even if a remedy set forth in this Agreement is found to have failed of its essential purpose. We will have no liability for any failure or delay due to matters beyond our reasonable control.”
Understanding your GitHub backup options
When backing up GitHub, you have two options: build or buy. With the former, you assign internal resources to develop and maintain a bespoke backup solution. With the latter, you invest in a tool from a third party.
Your decision will depend on where you want your internal resources to focus and how much maintenance you want your developers to do. A DIY backup model means you’ll have to divert valuable time and resources away from higher-priority work.
(insert DIY backup cost calculator widget)
More about Rewind Backups for GitHub
Rewind Backups for GitHub offers several important features on top of simple repository recovery:
- Nightly backups
- Sync to Amazon S3
- Audit log
- Backing up issues, milestones, pull requests, and other essential metadata
- Restore directly to GitHub
- No 90-day limit on backup retention
If you’re interested in getting serious about code backups, check out Rewind’s GitHub repository backup and recovery tool.