如何通过 Github 找到一个人?

如何通过 Github 找到一个人?

本文转自白宦成 并作补充

很多时候,我们都需要找到一个人的联系方式。但是,并不是每一次我们都可以很好的拿到他的联系方式,这个时候,我们就需要借助一些奇技淫巧来找到一个人的联系方式。

Requirements

Github 账号

你要找的人的 GitHub 账号(需要其账号下有仓库)

原理

在我们使用 Git 进行版本控制时,一开始,我们会被要求设置一个 Git 的用户名和邮箱,就像下面这样。

image

后续,我们的每一个 Commit 都会基于我们填写的用户名和邮箱来进行存储。我们只需要查询一个人在 Github 的提交记录,就可以找到他填写在 Git 中的邮箱和名字,从而方便我们更进一步找到这个人。

实践

想要通过 Git 找到一个人的邮箱,最简单的方法就是使用 Github 提供的 GraphQL 来进行查询,简单方便。

访问Github 的 GraphQL API Explorer,点击右侧的 Sign in ,使用你的 Github 账号登陆,这样就可以调用 Github 的 API 了。

image

登陆后,你下方的 GraphQL 输入框就可以输入内容了。在其中输入如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
repository(name: "grank", owner: "lctt") {
ref(qualifiedName: "master") {
target {
... on Commit {
id
history(first: 5) {
edges {
node {
author {
name
email
}
}
}
}
}
}
}
}
}

并将 name 替换为你要查询的人的 repo 名,owner 改为你需要查询的人的名字,然后点击执行按钮。

image

右侧会出现你的执行结果,你会发现,其中出现我们想要的“邮箱”地址。

image

你会发现,这里其实有两种类型的邮箱,一种是我们常见的,自己用的各种免费邮箱,比如 @qq.com、@gmail.com、@foxmail.com 之类的;另一种是形如 27856297+dependabot-preview[bot]@users.noreply.github.com 这样的邮箱。

这两种邮箱的区别是,前者是我们自己通过 git 设置的邮箱,而后者则是我们通过 Github 网页、 API 操作产生的 commit 。你在查询的时候,要记得去找第一类邮箱来作为参考。

当然,不排除有开发者在看了本篇文章后,去用 private 邮箱修改自己本地的 Git ,那就没办法了。

找到这个邮箱以后怎么办呢?

直接发邮件联系
如果是 QQ 邮箱、 Foxmail ,可以试着直接用邮箱,或者邮箱里的 QQ 号加好友。
通过 Google 搜索这个邮箱,查找其他的关联信息。