# 如何通过 Github 找到一个人？

- Link: https://www.ixiqin.com/2020/01/08/how-to-find-a-person-through-making/
- Published: 2020-01-08T22:21:45+08:00
- Author: 白宦成

文章目录

 [Toggle](https://www.ixiqin.com/2020/01/08/how-to-find-a-person-through-making/#)

 * [Requirements](https://www.ixiqin.com/2020/01/08/how-to-find-a-person-through-making/#requirements)
 * [原理](https://www.ixiqin.com/2020/01/08/how-to-find-a-person-through-making/#%e5%8e%9f%e7%90%86)
 * [实践](https://www.ixiqin.com/2020/01/08/how-to-find-a-person-through-making/#%e5%ae%9e%e8%b7%b5)

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

## Requirements

 * Github 账号
 * 你要找的人的 GitHub 账号（需要其账号下有仓库）

## 原理

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

![](https://postimg.aliavv.com/mbp/641y8.png)

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

## 实践

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

访问[Github 的 GraphQL API Explorer](https://developer.github.com/v4/explorer/)，
点击右侧的 Sign in ，使用你的 Github 账号登陆，这样就可以调用 Github 的 API 了。

![](https://postimg.aliavv.com/mbp/3wznj.png)

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

    ```javascript
    {
      repository(name: "grank", owner: "lctt") {
        ref(qualifiedName: "master") {
          target {
            ... on Commit {
              id
              history(first: 5) {
                edges {
                  node {
                    author {
                      name
                      email
                    }
                  }
                }
              }
            }
          }
        }
      }
    }

    Code language: JavaScript (javascript)
    ```

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

![](https://postimg.aliavv.com/mbp/impal.png)

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

![](https://postimg.aliavv.com/mbp/gggpa.png)

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

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

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

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

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