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

377

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

Yurij73
источник
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

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

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

nulltoken
источник
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>

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

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

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

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

Кей Марквардт
источник
должен быть ответ с более высоким рейтингом. Просто и точно, и, как вы сказали, соблюдает конфиденциальность. ти.
JoelAZ
1
И если в аккаунте нет активности, я могу найти единственный способ сделать это.
Дейв Стриклер
33

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

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

Источник

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

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

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

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

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

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

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

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

ian0411
источник
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
Это не очень помогает, если на странице их профиля нет твиттера.
Игорь,