需要 GitHub 使用方面的帮助。我想知道是否有一种方法可以与 github.com 用户交流,即在用户的 GitHub 页面上只提供用户名/id 时给用户写一条消息?GitHub 有这个社交功能吗?
9 回答
尽管 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
作为提交者/作者,电子邮件应与提交数据一起显示。
注意:与不请自来的电子邮件相关的每个警告都应在此处适用。不要垃圾邮件。
此方法自 2022 年 1 月起有效
- 将下一行复制并粘贴到浏览器中(随意添加书签):https ://api.github.com/users/xxxxxxx/events/public
- 找到您想要接收电子邮件的 GitHub 用户名。将 URL 中的 xxxxxxx 替换为此人的 GitHub 用户名。点击输入。
- 按 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
只需创建一个虚拟仓库,打开一个新问题并使用@xxxxx 通知受影响的用户。
如果用户启用了电子邮件通知,他们将收到一封电子邮件,如果没有,他们将在下次登录时通知。
无需在提交或活动流中搜索电子邮件地址,并且尊重隐私。
对于像我这样的懒人,基于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>
这是另一种方式:
浏览某人的提交历史(单击
commits
分支旁边的哪个以查看整个提交历史)单击带有此人用户名的提交,因为可能有很多人
然后您应该会看到该网址有一个与 URL 连接的哈希值。添加
.patch
到此提交 URL您可能会在此处看到此人的电子邮件地址
例子:https://github.com/[username]/[reponame]/commit/[hash].patch
资料来源:克里斯赫伦@Sourcecon
对我来说非常有效的最简单的解决方案就是放置该特定用户的用户名或相应用户的存储库链接!
<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>
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.