Jak zostawić wiadomość dla użytkownika github.com

376

Potrzebujesz pomocy na temat korzystania z GitHub. Zastanawiam się, czy istnieje sposób na komunikację z użytkownikiem github.com, tj. Napisać użytkownikowi wiadomość, gdy na stronie GitHub podana jest tylko nazwa użytkownika / identyfikator? Czy GitHub ma tę funkcję społecznościową?

Yurij73
źródło
6
Odpowiadając na pytanie (ponieważ jest już zamknięte): możesz otworzyć problem i mam nadzieję, że właściciel repo odpowie.
heltonbiker
1
Zobacz Jakikolwiek sposób na skontaktowanie się z użytkownikiem w Github? , który jest tematem na WebApps.SE.
chharvey
Dla mnie wygląda to bardziej na pytanie SuperUser .
Dirk Horsten
5
W trosce o prywatność : Aby uniknąć wyświetlania osobistego adresu e-mail według jednej z odpowiedzi tutaj , użytkownicy Github mogą przejść do Ustawienia-> E - maile i zaznaczyć pole Zachowaj mój adres e-mail prywatny . Następnie muszą użyć git config user.emaillub git config --global user.emailustawić lokalnego adresu e-mail git na prywatny adres e-mail Github (<nazwa_użytkownika> @ users.noreply.github.com) Wszystkie ich zobowiązania - od tego momentu - będą zawierać tylko prywatny „nie” e-mail. Pamiętaj, że wszelkie wcześniejsze zatwierdzenia / lokalne zatwierdzenia repo z osobistym zestawem e-mail nadal będą go wyświetlać.
leanne

Odpowiedzi:

361

Chociaż GitHub usunął funkcję prywatnych wiadomości, wciąż istnieje alternatywa.

Repozytoria git hosta GitHub. Jeśli użytkownik, z którym chcesz się komunikować, popełnił kiedyś jakiś kod, istnieje duże prawdopodobieństwo, że osiągniesz swój cel. Rzeczywiście, w ramach każdego zatwierdzenia przechowywane są informacje o autorze zmiany lub osobie, która ją zaakceptowała.

Pod warunkiem, że naprawdę umierasz, aby wymienić się z użytkownikiem user_test

  • Wyświetl publiczną stronę aktywności użytkownika: https://github.com/user_test?tab=activity
  • Wyszukaj zdarzenie o treści „test_użytkownika przesłany do [gałęzi] w [repozytorium]” . Zwykle są duże szanse, że mogli oni popchnąć jeden z jego własnych zobowiązań. Upewnij się, że tak jest, klikając link „Wyświetl porównanie ...” i upewnij się, że użytkownik jest wymieniony jako jeden z podmiotów odpowiedzialnych.
  • Sklonuj na lokalnym komputerze repozytorium, do którego wypchnęli: git clone https://github.com/..../repository.git
  • Przejdź do gałęzi, do której wysłali: git checkout [branch]
  • Wyświetl najnowsze zatwierdzenia: git log -50

Jako osoba zatwierdzająca / autor powinien zostać wyświetlony e-mail wraz z danymi zatwierdzenia.

Uwaga: każde ostrzeżenie związane z niechcianą wiadomością e-mail powinno mieć zastosowanie. Czy nie spam.

nulltoken
źródło
11
Jaki użytkownik nie ma żadnej aktywności? Mam na myśli, po prostu utworzyłeś konto i nigdy się nie logowałeś?
Hossein
6
łał! dlaczego nie użyć adresu e-mail na stronie profilu użytkownika github ?!
mavili
24
@mavili Ponieważ może nie być wypełniony. Zobacz pytanie -> „gdy na stronie github podano tylko nazwę użytkownika / identyfikator?”
nulltoken
5
@nulltoken Przeczytałem twoją odpowiedź ze łzami w oczach. Nie mogę uwierzyć, że ten sen się spełnił. dzięki bracie czołgi ......
Esterlinkof
3
Możliwe, że dostaniesz [email protected]adres, na wypadek, gdyby ktoś naprawdę chciał zachować swój adres e-mail jako prywatny.
tigrou
237

Ta metoda działała od marca 2020 r

  1. Skopiuj i wklej następny wiersz w przeglądarce (dodaj do zakładek): https://api.github.com/users/xxxxxxx/events/public
  2. Znajdź nazwę użytkownika GitHub, dla której chcesz otrzymać wiadomość e-mail. Zamień xxxxxxx w adresie URL na nazwę użytkownika GitHub tej osoby. Wciśnij Enter.
  3. Naciśnij Ctrl + F i wyszukaj „email”.

Zgodnie z sugestią qbolec powyższe kroki można wykonać przy użyciu tego fragmentu kodu :

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

Źródło: Matthew Ferree @ Sourcecon

Nikhil
źródło
7
W moim przypadku nie zawiera e
TheKitMurkit
7
Ta metoda wymaga, aby użytkownik miał jakąś aktywność publiczną
ovinophile
5
Zaraz, ta odpowiedź jest tylko skarbem dla spamerów ... „Jak znaleźć adres e-mail użytkownika github”
Alex
7
Adres e-mail w tym interfejsie pochodzi z lokalnej konfiguracji git użytkownika, a nie z tej, którą ustawili w Github. Niedawno Github dodał opcję Ustawienia / E-maile, aby blokować zatwierdzenia, które przypadkowo zawierają adres e-mail, który użytkownik oznaczył jako „prywatny”. I tak, treść ujawniona przez API ma zastosowanie tylko do publicznych repozytoriów; prywatne dane repo nie będą wyświetlane.
leanne
2
@pbhj prawdopodobnie ktoś powinien powiedzieć githubowi. jest to wyciek prywatności.
Gewure
52

Dla leniwych, takich jak ja, fragment kodu oparty na rozwiązaniu Nikhila

<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
źródło
1
To da fałszywe trafienia, jeśli poszukiwany użytkownik połączył PR innego użytkownika. W takim przypadku commitsbędzie tablica zawierająca zarówno autora PR, jak i połączenie (użytkownika, który scalił PR).
styfle
50

Po prostu przygotuj fałszywe repozytorium, otwórz nowy problem i użyj @xxxxx, aby powiadomić użytkownika, którego dotyczy problem.

Jeśli użytkownik ma włączone powiadomienia za pośrednictwem poczty e-mail, otrzyma wiadomość e-mail, jeśli nie, zauważy to przy następnym logowaniu.

Nie trzeba szukać adresu e-mail w strumieniu zatwierdzeń lub aktywności, a prywatność jest przestrzegana.

Kay Marquardt
źródło
powinna być wyżej głosowana odpowiedź. Prosto i na temat i, jak powiedziałeś, szanuje prywatność. ty.
JoelAZ
1
A jeśli na koncie nie ma żadnej aktywności, właściwie to jedyny sposób, aby to zrobić.
Dave Strickler
33

Github powiedział 3 kwietnia 2012 r .:

Dziś usuwamy dwie funkcje. Od jakiegoś czasu zbierają kurz i nadszedł czas, aby je wyrzucić: Kolejka widelca i prywatne wiadomości

Źródło

MyBoon
źródło
2
Ta odpowiedź jest nieaktualna. Spójrz poniżej, aby uzyskać zaktualizowane odpowiedzi.
Nikhil
22

Oto inny sposób:

  • Przeglądaj czyjąś historię zmian (kliknij commitsobok gałęzi, aby zobaczyć całą historię zmian)

  • Kliknij zatwierdzenie, które zawiera nazwa użytkownika, ponieważ może być ich tak wiele

  • Następnie powinieneś zobaczyć, że adres internetowy ma skrót powiązany z adresem URL. Dodaj .patchdo tego adresu URL zatwierdzenia

  • Będzie prawdopodobnie zobaczyć osobę, adres e-mail istnieje

Przykład: https://github.com/[username]/[reponame]/commit/[hash].patch

Źródło: Chris Herron @ Sourcecon

ian0411
źródło
6
Aby uniknąć wyświetlania w ten sposób osobistego adresu e-mail, użytkownicy Github mogą przejść do Ustawienia-> E - maile i zaznaczyć pole Zachowaj mój adres e-mail prywatny . Następnie muszą użyć git config user.emaillub git config --global user.emailustawić lokalnego adresu e-mail git na prywatny adres e-mail Github (<nazwa_użytkownika> @ users.noreply.github.com) Wszystkie ich zobowiązania - od tego momentu - będą zawierać tylko prywatny „nie” e-mail. Pamiętaj, że wszelkie wcześniejsze zatwierdzenia lub lokalne zatwierdzenia repo z osobistym zestawem e-mail nadal będą zawierać prawdziwy adres e-mail.
leanne
3
Nadal działa, dzięki. Mam nadzieję, że spamerzy nie wykorzystają tej funkcji.
Dennis Gorelik,
5

Poza usunięciem usługi wiadomości github , wykorzystanie często nie było konieczne ze względu na wiele githubbers komunikujących z- i zachęcających do Twittera .

Zaletą jest to, że znajduje się:

  • pełna przejrzystość
  • lepszy zasięg
  • lepsze funkcje wyszukiwania tweetów
  • lepsza archiwizacja, na przykład przez US Library of Congress

Prawdopodobnie nieprzypadkowo przepełnienie stosu również nie pozwala na prywatne przesyłanie wiadomości, aby zapewnić pełną przejrzystość. Cały problem z wiadomościami jest dokładnie omawiany w meta-stackoverflow tutaj .

Lorenz Lo Sauer
źródło
8
Ok, co powiesz na publiczne przesłanie im wiadomości? Na przykład chcę zadać pytanie, jak to zrobić, a dostarczona dokumentacja jest okropna. Pomocne byłoby dla nich reagowanie nie tylko na mnie, ale na każdego, kto próbowałby użyć ich kodu.
Michael
10
Jeśli chcesz zadać pytanie / zgłosić coś na temat jego projektu - po prostu otwórz „problem” w github i przedyskutuj
Alex
8
To smutny stan rzeczy. Dla mnie Twitter jest dobrą platformą.
Xupicor,
9
twitter jest zły dla prawdziwej komunikacji, ponieważ limit 140 znaków.
My1
6
To nie pomaga, jeśli na stronie profilu nie ma Twittera.
Igor