TestingNovember 8, 20265 min read

Temp Mail for GitHub: Test Accounts Without Cluttering Your Inbox

Use temp mail for a GitHub test account you'll throw away, like checking a Sign in with GitHub flow. Steps, the 20-minute window and when to use a real email.

Temp Mail for GitHub: Test Accounts Without Cluttering Your Inbox

You can use temp mail for GitHub sign-up and confirm the account with the code GitHub sends. Do it for a test account you plan to throw away, such as checking your app's Sign in with GitHub flow as a brand-new user. For any account you'll push code from or keep, use a permanent address.

Why the email on a GitHub account matters

GitHub ties a lot to your email: password resets, security alerts, sign-in checks and notifications. A temporary address handles the sign-up code fine, and then it's gone. On TempMailFast's website that happens 20 minutes after the address is created.

The real test is whether GitHub will ever need to reach you on this account again. A test user you delete after one afternoon won't need that, while your real developer profile, with its repositories, stars and history, will.

Testing Sign in with GitHub as a brand-new user

A throwaway GitHub account is handy when you want to see your own OAuth app or GitHub App the way a first-time user does: the consent screen, the permissions list, the first install. Revoking the app on your main account (under Applications in your settings) brings the consent screen back, but you're still a user with orgs, history and earlier installs.

Check the rules before you create one. GitHub's Terms of Service, as currently written, allow one free personal account per person, plus a machine account that's used only to run automation. A test user you click through by hand doesn't fit neatly into either, so read the current Terms, keep the account short-lived and delete it after the test.

  1. Open TempMailFast in the browser you'll test in. You don't need to click anything to get an address; one is waiting for you.
  2. Copy the address with the copy icon and paste it into GitHub's sign-up form. Pick a username that says what it's for, like yourname-oauth-test.
  3. Solve the puzzle if GitHub shows one. Sign-up sometimes asks for it before sending anything.
  4. Wait for the email from GitHub. If it isn't there yet, give it a moment: the page checks for new mail every 30 seconds, and the Refresh button looks sooner.
  5. Open the message and enter the code it contains into GitHub (or follow its link, if that's what GitHub sent).
  6. Run your test: click your app's Sign in with GitHub button, read the consent screen, authorize it, and install your GitHub App on a test repo if you have one.
  7. Delete the account in GitHub's settings when you're done.

Save the password in your password manager even for a test user. GitHub will want you signed in to delete the account, and a forgotten password with a dead inbox leaves you stuck. Our password manager guide covers which accounts deserve a real address.

The clock starts when the address does

The 20 minutes count from when the address is created, not from when GitHub's email lands. If you want to test several things, write them down before you open the sign-up page.

Any step that makes GitHub email the account has to fit inside that window: the sign-up code, a verification link for an added email, or a sign-in code (more on that below). An expired address can't be recovered, and clicking New address gives you a different address rather than more time on the old one.

If a demo account turns out to be worth keeping, swap the email while the temp inbox still works. In GitHub's email settings, add a permanent address, confirm it, make it your primary email, then remove the temporary one.

Throwaway or permanent email? A quick sort

What you're doingTemp mail?Why
Testing your OAuth app or GitHub App as a fresh userYesYou need a clean user once, then you delete it
A one-off account for a talk or workshopYes, if the Terms allow it and you delete it afterNobody will need to reset its password later
Seeing a collaborator invite from the invitee's sidePartlyThe invite email only arrives while the address works, but a signed-in account can accept it on github.com later, before the invite expires
A bot or CI account your team keepsNoUse a shared team mailbox, so someone can recover it
Your main account, or a second one for workNoCommit history, org membership and billing all hang off it

When the test account fights back

A code request at your next sign-in. GitHub may email a device verification code when an account without two-factor authentication signs in from a new browser or device. If the temp address has expired, that code goes nowhere. Stay in the browser you signed up in, or set up two-factor while you still have access.

Two-factor gets required. GitHub has been rolling out required two-factor authentication for accounts that contribute code. A test user that only signs in to your app may not be affected. An account that pushes code is one you'll keep, though, and that's the kind that needs a permanent email.

The form rejects the address. Some services block known disposable domains. Click New address and try again, since a new address may be on a different domain. If it still fails, use a permanent address you control, such as an alias at your own domain.

No email after a few minutes. Press Refresh, then check the address on GitHub's screen matches the one you copied. Request a new code if it's still missing. Our verification email checklist covers the other causes.

Keeping your real email out of commits

If what you really want is to keep your real address out of public commits, a throwaway account won't help with your main work.

In your GitHub email settings you can keep your address private and use the no-reply address GitHub gives you. Then set your local Git user.email to that no-reply address, so commits you make on your own machine stop carrying your personal one. Commits you've already pushed keep the email they were made with.

TempMailFast's part in this

On the website you get a random address, a private inbox only your browser can open, and 20 minutes to use it, with no sign-up on our side. The address is receive-only, so you can read GitHub's code but can't reply, and you see each message's subject and body.

There's no public API, so you can't script GitHub sign-ups against it. For automated tests of your own app's email, use a mail catcher in your test environment, as covered in testing email flows in staging. Keep TempMailFast for the manual run where a person clicks through GitHub's sign-up.

The free iOS and Android apps also give you 20-minute addresses, and there you can choose a free domain or set a custom username with letters and numbers. Premium in the apps makes addresses last longer, which helps when a test session runs long.


Need a clean GitHub test user for the next 20 minutes? Open TempMailFast and copy the address it gives you.

Frequently Asked Questions

Does GitHub accept temporary email addresses?

Many disposable addresses get through, but there's no guarantee. If the sign-up form rejects one, try a new address, which may be on a different domain, or use a permanent address.

Can I recover a GitHub account made with temp mail?

Only if you still have the password and either stay on a recognized device or have two-factor set up. A forgotten password still needs the email on file, and an expired temp address can't receive it.

Should a bot or CI account use temp mail?

No. A bot account usually lives for years, so give it a mailbox your team controls. That way anyone on the team can handle a reset or a security notice.

Will temp mail hide my email in Git commits?

No. Commits you make locally carry whatever email your Git config is set to. Use GitHub's private email setting and its no-reply address instead.

Related Articles