Как оставить сообщение для пользователя github.com


377

Нужна помощь по использованию GitHub. Интересно, есть ли способ связаться с пользователем github.com, т.е. написать пользователю сообщение, когда на его странице GitHub указано только имя пользователя / идентификатор? GitHub имеет эту социальную функцию?


6
Отвечая на вопрос (поскольку он сейчас закрыт): вы можете открыть выпуск и надеяться, что владелец репо ответит вам.
Хелтонбайкер

1
Смотрите. Как связаться с пользователем на Github? , который по теме на WebApps.SE.
Чхарвэй

Для меня это больше похоже на вопрос для SuperUser .
Дирк

5
Для обеспечения конфиденциальности : во избежание показа личной электронной почты по любому из ответов, приведенных здесь , пользователи Github могут перейти в « Настройки» -> « Электронная почта» и установить флажок « Сохранить мой адрес электронной почты закрытым» . Затем они должны использовать git config user.emailили, git config --global user.emailчтобы установить свою локальную электронную почту git на частный адрес электронной почты Github (<username> @ users.noreply.github.com). Все их коммиты, начиная с этого момента, будут включать только частную электронную почту «noreply». Обратите внимание, что любые предыдущие коммиты / локальные репо коммиты с личным набором электронной почты все равно будут отображаться.
Линн

Ответы:


362

Хотя GitHub удалил функцию личных сообщений, есть еще альтернатива.

GitHub хост репозитории git. Если пользователь, с которым вы хотите общаться, когда-либо фиксировал какой-либо код, есть хорошие шансы, что вы сможете достичь своей цели. Действительно, в каждом коммите хранится некоторая информация об авторе изменения или о том, кто его принял.

Если вы действительно хотите обменяться с пользователем user_test

  • Откройте страницу общедоступной активности пользователя: https://github.com/user_test?tab=activity
  • Найдите событие, в котором указано «user_test отправлено в [branch] в [repository]» . Обычно есть хорошие шансы, они могли подтолкнуть один из его собственных коммитов. Убедитесь, что это так, щелкнув ссылку «Просмотреть сравнение ...» и убедитесь, что пользователь указан в качестве одного из коммиттеров.
  • Клонируйте на вашем локальном компьютере репозиторий, к которому они добавили: git clone https://github.com/..../repository.git
  • Оформите ветку, к которой они подтолкнули: git checkout [branch]
  • Показать последние коммиты: git log -50

Как коммиттер / автор, электронное письмо должно отображаться вместе с данными коммита.

Примечание. Каждое предупреждение, относящееся к нежелательной почте, должно применяться там. Есть не спам.


11
Какой пользователь не имеет активности? Я имею в виду, просто создал учетную запись и никогда не входил снова?
Хоссейн

6
Вот Это Да! почему бы просто не использовать адрес электронной почты на странице профиля пользователя github ?!
mavili

24
@mavili Потому что это не может быть заполнено. Смотрите вопрос -> "когда на странице github указывается только имя пользователя / идентификатор?"
nulltoken

5
@nulltoken Я прочитал твой ответ со слезами на глазах. Я не могу поверить, что эта мечта стала реальностью. Танки, брат, спасибо ......
Esterlinkof

3
Скорее всего, вы получите username@users.noreply.github.comадрес, если кто-то действительно захочет сохранить свой адрес электронной почты в тайне.
Tigrou

237

Этот метод работал с марта 2020 года

  1. Скопируйте и вставьте следующую строку в свой браузер (не забудьте добавить ее в закладки): https://api.github.com/users/xxxxxxx/events/public
  2. Найдите имя пользователя GitHub, для которого вы хотите получить адрес электронной почты. Замените xxxxxxx в URL-адресе именем пользователя GitHub. Нажмите Enter.
  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


7
В моем случае он не содержит Email
TheKitMurkit

7
Этот метод требует, чтобы у пользователя была публичная активность
ovinophile

5
Ого, этот ответ просто клад для спамеров ... «Как найти пользователя адрес электронной почты , любой GitHub в»
Алекс

7
Адрес электронной почты в этом API поступает из локальной настройки git пользователя, а не из того, что он установил в Github. Github недавно добавил опцию «Настройки» / «Электронная почта» для блокировки коммитов, которые случайно включают адрес электронной почты, который пользователь пометил как «приватный». И, да, раскрытое API-содержимое применимо только к публичным репозиториям; данные частного репо не будут отображаться.
Линн

2
@pbhj кто-то должен сказать github, вероятно. это утечка приватности.
Gewure

52

Для ленивых людей, таких как я, фрагмент, основанный на решении Нихила

<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>


1
Это даст ложные срабатывания, если искомый пользователь слил PR другого пользователя. В этом случае commitsбудет массив как с автором PR, так и слиянием (пользователем, который объединил PR).
Styfle

50

Просто создайте фиктивное репо, откройте новую проблему и используйте @xxxxx, чтобы уведомить пострадавшего пользователя.

Если у пользователя включено уведомление по электронной почте, он получит электронное письмо, если нет - при следующем входе в систему.

Нет необходимости искать адрес электронной почты в коммитах или в потоке активности, и конфиденциальность соблюдается.


должен быть ответ с более высоким рейтингом. Просто и точно, и, как вы сказали, соблюдает конфиденциальность. ти.
JoelAZ

1
И если в аккаунте нет активности, я могу найти единственный способ сделать это.
Дейв Стриклер

33

Гитхуб сказал 3 апреля 2012 года:

Сегодня мы удаляем две функции. Некоторое время они пылились, и пришло время их выбрасывать: Fork Queue & Private Messaging

Источник


2
Этот ответ устарел. Смотрите ниже обновленные ответы.
Нихилу

22

Вот еще один способ:

  • Просмотрите чью-либо историю коммитов (нажмите, commitsкоторая находится рядом с веткой, чтобы увидеть всю историю коммитов)

  • Нажмите на коммит с именем пользователя, потому что их может быть очень много.

  • Затем вы должны увидеть, что на веб-адресе есть хеш, связанный с URL. Добавьте .patchк этому URL коммита

  • Вы, вероятно, увидите там адрес электронной почты этого человека.

Пример: https://github.com/[username]/[reponame]/commit/[hash].patch

Источник: Крис Херрон @ Sourcecon


6
Чтобы личный адрес электронной почты не показывался таким образом, пользователи Github могут перейти в « Настройки» -> « Электронные письма» и установить флажок « Сохранить мой адрес электронной почты в секрете» . Затем они должны использовать git config user.emailили, git config --global user.emailчтобы установить свою локальную электронную почту git на частный адрес электронной почты Github (<username> @ users.noreply.github.com). Все их коммиты, начиная с этого момента, будут включать только частную электронную почту «noreply». Обратите внимание, что любые предыдущие коммиты или локальные репо коммиты с личным набором электронной почты будут по-прежнему содержать реальный адрес электронной почты.
Линн

3
Это все еще работает, спасибо. Я надеюсь, что спаммеры не будут злоупотреблять этой функцией.
Денис Горелик

5

Помимо удаления службы обмена сообщений GitHub , использование часто не обязательно из - за многие githubbers сообщающихся с- и пропагандирующего твиттер .

Преимуществом является то , что есть:

  • полная прозрачность
  • лучшее покрытие
  • улучшенные функции поиска для твитов
  • лучшее архивирование, например, Библиотекой Конгресса США

Вероятно, не случайно стековый поток также не позволяет использовать частные сообщения для обеспечения полной прозрачности. Вся проблема обмена сообщениями подробно обсуждается здесь в разделе meta-stackoverflow .


8
Хорошо, а как насчет публичного сообщения? Например, я хочу задать вопрос о том, как сделать определенную вещь, и предоставленная документация ужасна. Для них было бы полезно ответить не только мне, но и любому, кто пытается использовать их код.
Майкл

10
Если вы хотите задать вопрос / сообщить что-то о его / ее проекте - просто откройте «проблему» в github и обсудите
Алекс

8
Это печальное положение вещей, хотя. Для меня Twitter - это не просто хорошая платформа.
Xupicor

9
твиттер плох для реального общения, потому что ограничение в 140 символов.
My1

6
Это не очень помогает, если на странице их профиля нет твиттера.
Игорь,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.