Skip to content

JoshuaKGoldberg/github-username-to-emails

Repository files navigation

github-username-to-emails

Fetches any public emails associated with a GitHub username. πŸ“§

All Contributors: 1 πŸ‘ͺ Codecov Test Coverage Contributor Covenant License: MIT Style: Prettier TypeScript: Strict npm package version

Usage

npm i github-username-to-emails
import { getGitHubUsernameEmails } from "github-username-to-emails";

await getGitHubUsernameEmails({ username: "joshuakgoldberg" });

/*
{
  account: 'github@joshuakgoldberg.com',
  events: { 'git@joshuakgoldberg.com': [ 'Josh Goldberg ✨', 'Josh Goldberg' ] }
}
*/

Calling getGitHubUsernameEmails will try to find the user's email from two public data points:

  • account: /users/${username}: public account information
  • events: /users/{username}/events: commits pushed by the user
    • This is stored as an object containing, under each email, the commit names associated with that email
    • Note that these may be commits originally authored by other users, not the user you're looking for

Note that account might be undefined and events might be {}. Only publicly visible emails can be retrieved.

Options

auth must be provided as an option or via process.env.GH_TOKEN.

Option Type Description Default
auth string Auth token for Octokit REST calls. process.env.GH_TOKEN
historyLimit number How many public events to look at. 500
username string GitHub user to check emails of.
await getGitHubUsernameEmails({
	auth: "gho_abc123",
	historyLimit: 9001,
	username: "joshuakgoldberg",
});

Email Privacy

This package doesn't expose any data users aren't already providing to GitHub. You can manually check the same data it looks at on:

  1. A user's public GitHub profile
  2. https://api.github.com/users/<username>/events

This package only serves as a convenience to same time searching through that data.

To hide your email from public view, see GitHub's Setting your commit email address docs.

Contributors

Josh Goldberg ✨
Josh Goldberg ✨

πŸ’» πŸ–‹ πŸ“– πŸ€” πŸš‡ 🚧 πŸ“† πŸ”§

πŸ’™ This package was templated with create-typescript-app.

About

Fetches any public emails associated with a GitHub username. πŸ“§

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published