So hinterlassen Sie eine Nachricht für einen Benutzer von github.com

376

Benötigen Sie Hilfe bei der Verwendung von GitHub? Ich frage mich, ob es eine Möglichkeit gibt, mit einem Benutzer von github.com zu kommunizieren, dh dem Benutzer eine Nachricht zu schreiben, wenn auf seiner GitHub-Seite nur Benutzername / ID angegeben ist. Hat GitHub diese soziale Funktion?

Yurij73
quelle
6
Beantwortung der Frage (da sie jetzt geschlossen ist): Sie können ein Problem öffnen und hoffen, dass der Repo-Besitzer Ihnen antwortet.
Heltonbiker
1
Siehe Wie kann ich einen Benutzer auf Github kontaktieren? , das bei WebApps.SE zum Thema gehört.
Chharvey
Sieht für mich eher nach einer Frage für SuperUser aus .
Dirk Horsten
5
Aus Datenschutzgründen : Um zu vermeiden, dass eine persönliche E-Mail gemäß einer der Antworten hier angezeigt wird, können Github-Benutzer unter Einstellungen-> E-Mails das Kontrollkästchen Meine E-Mail-Adresse geheim halten aktivieren . Dann müssen sie ihre lokale Git- E-Mail verwenden git config user.emailoder git config --global user.emailauf die private Github-E-Mail-Adresse (<Benutzername> @ users.noreply.github.com) einstellen. Von da an enthalten alle ihre Commits - von da an - nur noch die private "Noreply" -E-Mail. Beachten Sie, dass alle vorherigen Commits / lokalen Repo-Commits mit dem persönlichen E-Mail-Set weiterhin angezeigt werden.
Leanne

Antworten:

361

Obwohl GitHub die Funktion für private Nachrichten entfernt hat, gibt es immer noch eine Alternative.

GitHub-Host-Git-Repositorys. Wenn der Benutzer, mit dem Sie kommunizieren möchten, jemals Code festgeschrieben hat, besteht eine gute Chance, dass Sie Ihr Ziel erreichen. In jedem Commit sind tatsächlich einige Informationen über den Autor der Änderung oder denjenigen, der sie akzeptiert hat, gespeichert.

Vorausgesetzt, Sie möchten unbedingt mit dem Benutzer user_test austauschen

  • Zeigen Sie die öffentliche Aktivitätsseite des Benutzers an: https://github.com/user_test?tab=activity
  • Suchen Sie nach einem Ereignis, das angibt "user_test wird an [Zweig] in [Repository] gesendet" . Es gibt normalerweise gute Chancen, sie haben möglicherweise eine seiner eigenen Verpflichtungen vorangetrieben. Stellen Sie sicher, dass dies der Fall ist, indem Sie auf den Link "Vergleich anzeigen ..." klicken und sicherstellen, dass der Benutzer als einer der Committer aufgeführt ist.
  • Klonen Sie auf Ihrem lokalen Computer das Repository, in das sie verschoben wurden: git clone https://github.com/..../repository.git
  • Kasse der Zweig, zu dem sie geschoben haben: git checkout [branch]
  • Zeigen Sie die neuesten Commits an: git log -50

Als Committer / Autor sollte eine E-Mail zusammen mit den Commit-Daten angezeigt werden.

Hinweis: Dort sollte jede Warnung in Bezug auf unerwünschte E-Mails gelten. Haben nicht Spam.

nulltoken
quelle
11
Was ist der Benutzer hat keine Aktivität? Ich meine, einfach ein Konto erstellt und nie wieder angemeldet?
Hossein
6
Beeindruckend! Warum nicht einfach die E-Mail-Adresse auf der Profilseite des Github-Benutzers verwenden?!
Mavili
24
@mavili Weil es möglicherweise nicht gefüllt ist. Siehe die Frage -> "Wenn auf der Github-Seite nur Benutzername / ID angegeben ist?"
Nulltoken
5
@nulltoken Ich habe deine Antwort mit tränenreichen Augen gelesen. Ich kann nicht glauben, dass dieser Traum wahr wird. Panzer Bruder danke ......
Esterlinkof
3
Möglicherweise erhalten Sie eine [email protected]Adresse, falls jemand seine E-Mail-Adresse wirklich privat halten möchte.
Tigrou
237

Diese Methode funktionierte ab März 2020

  1. Kopieren Sie die nächste Zeile und fügen Sie sie in Ihren Browser ein (Sie können sie auch als Lesezeichen speichern): https://api.github.com/users/xxxxxxx/events/public
  2. Suchen Sie den GitHub-Benutzernamen, für den Sie die E-Mail erhalten möchten. Ersetzen Sie xxxxxxx in der URL durch den GitHub-Benutzernamen der Person. Drücke Enter.
  3. Drücken Sie Strg + F und suchen Sie nach "E-Mail".

Wie von qbolec vorgeschlagen , können die obigen Schritte mithilfe dieses Snippets ausgeführt werden:

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

Quelle: Matthew Ferree @ Sourcecon

Nikhil
quelle
7
In meinem Fall enthält es keine E-Mail
TheKitMurkit
7
Diese Methode erfordert, dass der Benutzer eine öffentliche Aktivität hat
ovinophile
5
Whoa, diese Antwort ist nur ein Schatz für Spammer ... "So finden Sie die E-Mail-Adresse eines Github-Benutzers"
Alex
7
Die E-Mail-Adresse in dieser API stammt aus dem lokalen Git-Setup des Benutzers und nicht aus dem, was er in Github festgelegt hat. Github hat kürzlich unter Einstellungen / E-Mails eine Option hinzugefügt, um Commits zu blockieren, die versehentlich eine E-Mail-Adresse enthalten, die der Benutzer als "privat" markiert hat. Und ja, der von der API offenbarte Inhalt gilt nur für öffentliche Repos. Private Repo-Daten werden nicht angezeigt.
Leanne
2
@pbhj Jemand sollte es wahrscheinlich Github erzählen. Dies ist ein Datenschutzleck.
Gewure
52

Für faule Leute wie mich ein Ausschnitt, der auf Nikhils Lösung basiert

<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
quelle
1
Dies führt zu falschen Treffern, wenn der gesuchte Benutzer einen PR eines anderen Benutzers zusammengeführt hat. In diesem Fall handelt commitses sich um ein Array mit dem Autor der PR und der Fusion (Benutzer, der die PR zusammengeführt hat).
Styfle
50

Erstellen Sie einfach ein Dummy-Repo, öffnen Sie ein neues Problem und benachrichtigen Sie den betroffenen Benutzer mit @xxxxx.

Wenn der Benutzer eine Benachrichtigung per E-Mail aktiviert hat, erhält er eine E-Mail. Andernfalls wird er beim nächsten Login benachrichtigt.

Sie müssen nicht nach E-Mail-Adressen in Commits oder Aktivitätsströmen suchen, und der Datenschutz wird respektiert.

Kay Marquardt
quelle
sollte eine höher gewählte Antwort sein. Einfach und auf den Punkt und respektiert, wie Sie sagten, die Privatsphäre. ty.
JoelAZ
1
Und wenn das Konto keine Aktivität enthält, ist dies so ziemlich die einzige Möglichkeit, die ich finden kann.
Dave Strickler
33

Github sagte am 3. April 2012:

Heute entfernen wir zwei Funktionen. Sie haben eine Weile Staub gesammelt und es ist Zeit, sie wegzuwerfen: Fork Queue & Private Messaging

Quelle

MyBoon
quelle
2
Diese Antwort ist veraltet. Unten finden Sie aktualisierte Antworten.
Nikhil
22

Hier ist ein anderer Weg:

  • Durchsuchen des Commit-Verlaufs einer Person (Klicken Sie auf commitsden Eintrag neben dem Zweig, um den gesamten Commit-Verlauf anzuzeigen.)

  • Klicken Sie auf das Commit mit dem Benutzernamen der Person, da möglicherweise so viele vorhanden sind

  • Dann sollten Sie sehen, dass die Webadresse einen mit der URL verknüpften Hash hat. In .patchdazu verpflichten URL

  • Dort sehen Sie wahrscheinlich die E-Mail-Adresse der Person

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

Quelle: Chris Herron @ Sourcecon

ian0411
quelle
6
Um zu verhindern, dass eine persönliche E-Mail auf diese Weise angezeigt wird, können Github-Benutzer unter Einstellungen-> E-Mails das Kontrollkästchen Meine E-Mail-Adresse geheim halten aktivieren . Dann müssen sie ihre lokale Git- E-Mail verwenden git config user.emailoder git config --global user.emailauf die private Github-E-Mail-Adresse (<Benutzername> @ users.noreply.github.com) einstellen. Von da an enthalten alle ihre Commits - von da an - nur noch die private "Noreply" -E-Mail. Beachten Sie, dass alle vorherigen Commits oder lokalen Repo-Commits mit dem persönlichen E-Mail-Set weiterhin die tatsächliche E-Mail-Adresse enthalten.
Leanne
3
Es funktioniert immer noch, danke. Ich hoffe, Spammer werden diese Funktion nicht missbrauchen.
Dennis Gorelik
5

Abgesehen von der Entfernung des Github-Messaging-Dienstes war die Verwendung häufig nicht erforderlich, da viele Githubber mit Twitter kommunizierten und Twitter befürworteten .

Der Vorteil ist, dass es gibt:

  • volle Transparenz
  • bessere Abdeckung
  • Bessere Suchfunktionen für Tweets
  • bessere Archivierung, zum Beispiel durch die US Library of Congress

Es ist wahrscheinlich kein Zufall, dass der Stackoverflow auch kein privates Messaging zulässt, um vollständige Transparenz zu gewährleisten. Das gesamte Messaging-Problem wird hier im Meta-Stackoverflow ausführlich behandelt .

Lorenz Lo Sauer
quelle
8
Ok, was ist mit einer Möglichkeit, sie öffentlich zu benachrichtigen? Zum Beispiel möchte ich eine Frage stellen, wie man eine bestimmte Sache macht, und die bereitgestellte Dokumentation ist grausam. Es wäre hilfreich für sie, nicht nur auf mich zu antworten, sondern auf jeden, der versucht, seinen Code zu verwenden.
Michael
10
Wenn Sie eine Frage stellen / etwas über sein / ihr Projekt berichten möchten - öffnen Sie einfach ein "Problem" in Github und diskutieren Sie
Alex
8
Das ist allerdings ein trauriger Zustand. Twitter ist für mich alles andere als eine gute Plattform.
Xupicor
9
Twitter ist schlecht für echte Kommunikation, weil 140 Zeichen Limit.
My1
6
Dies hilft nicht wirklich, wenn auf ihrer Profilseite kein Twitter aufgeführt ist.
Igor