445

需要 GitHub 使用方面的帮助。我想知道是否有一种方法可以与 github.com 用户交流,即在用户的 GitHub 页面上只提供用户名/id 时给用户写一条消息?GitHub 有这个社交功能吗?

4

9 回答 9

400

尽管 GitHub 删除了私人消息功能,但仍有替代方案。

GitHub 托管 git 存储库。如果您愿意与之交流的用户曾经提交过一些代码,那么您很有可能实现您的目标。实际上,在每个提交中都存储了一些关于更改作者或接受更改的人的信息。

如果您真的很想与用户user_test交换

  • 显示用户的公开活动页面:https ://github.com/user_test?tab=activity
  • 搜索声明“user_test push to [branch] at [repository]”的事件。通常有很好的机会,他们可能已经推送了他自己的一个提交。通过单击“查看比较...”链接确保是这种情况,并确保用户被列为提交者之一。
  • 在您的本地计算机上克隆他们推送到的存储库:git clone https://github.com/..../repository.git
  • 查看他们推送到的分支:git checkout [branch]
  • 显示最新的提交:git log -50

作为提交者/作者,电子邮件应与提交数据一起显示。

注意:与不请自来的电子邮件相关的每个警告都应在此处适用。不要垃圾邮件。

于 2012-10-02T09:23:23.287 回答
331

此方法自 2022 年 1 月起有效

  1. 将下一行复制并粘贴到浏览器中(随意添加书签):https ://api.github.com/users/xxxxxxx/events/public
  2. 找到您想要接收电子邮件的 GitHub 用户名。将 URL 中的 xxxxxxx 替换为此人的 GitHub 用户名。点击输入。
  3. 按 Ctrl+F 并搜索“电子邮件”。

正如qbolec所建议的,上述步骤可以通过使用以下代码片段来完成:

<input id=username type="text" placeholder="github username or repo link">
<button onclick="fetch(`https://api.github.com/users/${username.value.replace(/^.*com[/]([^/]*).*$/,'$1')}/events/public`).then(e=> e.json()).then(e => [...new Set([].concat.apply([],e.filter(x => x.type==='PushEvent').map(x => x.payload.commits.map(c => c.author.email)))).values()]).then(x => results.innerText = x)">GO</button>
<div id=results></div>

资料来源:马修费里@Sourcecon

于 2017-05-28T15:50:31.460 回答
82

只需创建一个虚拟仓库,打开一个新问题并使用@xxxxx 通知受影响的用户。

如果用户启用了电子邮件通知,他们将收到一封电子邮件,如果没有,他们将在下次登录时通知。

无需在提交或活动流中搜索电子邮件地址,并且尊重隐私。

于 2018-03-14T12:09:18.597 回答
61

对于像我这样的懒人,基于Nikhil 解决方案的片段

<input id=username type="text" placeholder="github username or repo link">
<button onclick="fetch(`https://api.github.com/users/${username.value.replace(/^.*com[/]([^/]*).*$/,'$1')}/events/public`).then(e=> e.json()).then(e => [...new Set([].concat.apply([],e.filter(x => x.type==='PushEvent').map(x => x.payload.commits.map(c => c.author.email)))).values()]).then(x => results.innerText = x)">GO</button>
<div id=results></div>

于 2017-06-19T19:08:19.663 回答
32

Github 在 2012 年 4 月 3 日说:

今天我们要删除两个功能。他们已经积攒了一段时间的灰尘,是时候把它们扔掉了:分叉队列和私人消息

资源

于 2012-10-02T08:06:39.230 回答
31

这是另一种方式:

  • 浏览某人的提交历史(单击commits分支旁边的哪个以查看整个提交历史)

  • 单击带有此人用户名的提交,因为可能有很多人

  • 然后您应该会看到该网址有一个与 URL 连接的哈希值。添加.patch到此提交 URL

  • 可能会在此处看到此人的电子邮件地址

例子:https://github.com/[username]/[reponame]/commit/[hash].patch

资料来源:克里斯赫伦@Sourcecon

于 2017-08-01T18:00:29.563 回答
6

除了删除github 消息服务外,由于许多 githubber 与 twitter 交流和提倡twitter ,因此通常不需要使用。

优点是有:

  • 完全透明
  • 更好的覆盖范围
  • 更好的推文搜索功能
  • 更好的存档,例如美国国会图书馆

stackoverflow 也不允许私人消息传递,以确保完全透明,这可能并非巧合。整个消息传递问题在此处的 meta-stackoverflow 上进行了彻底讨论。

于 2013-04-12T12:30:43.080 回答
1

对我来说非常有效的最简单的解决方案就是放置该特定用户的用户名或相应用户的存储库链接!

<input id=username type="text" placeholder="Github Username or Repo link">
<button onclick="fetch(`https://api.github.com/users/${username.value.replace(/^.*com[/]([^/]*).*$/,'$1')}/events/public`).then(e=> e.json()).then(e => [...new Set([].concat.apply([],e.filter(x => x.type==='PushEvent').map(x => x.payload.commits.map(c => c.author.email)))).values()]).then(x => results.innerText = x)">GO, Get email!</button>
<div id=results></div>

于 2021-07-04T09:33:30.330 回答
0

Does GitHub have this social feature?

If the commit email is kept private, GitHub now (July 2020) proposes:

Users and organizations can now add Twitter usernames to their GitHub profiles

You can now add your Twitter username to your GitHub profile directly from your profile page, via profile settings, and also the REST API.

We've also added the latest changes:

  • Organization admins can now add Twitter usernames to their profile via organization profile settings and the REST API.
  • All users are now able to see Twitter usernames on user and organization profiles, as well as via the REST and GraphQL APIs.
  • When sponsorable maintainers and organizations add Twitter usernames to their profiles, we'll encourage new sponsors to include that Twitter username when they share their sponsorships on Twitter.

That could be a workaround to leave a message to a GitHub user.

于 2020-07-23T06:03:41.937 回答