Покажи мне свой гитхаб

Все, конечно же, в курсе, что гитхаб - это такая штучка, которую айтишник при первом знакомстве обязательно должен показать. И не дай бог, если твой гитхаб окажется меньше, чем у того парня.

Мне в жизни не повезло - у меня он маленький. Но зато какие люди побывали на нём - смотрите: Гвидо Ван Россум, Леннарт Поттеринг, и - о боже! - сам Линус Торвальдс!

Только они об этом ещё не знают.

Обнаружил случайно. Достаточно написать email участника в ~/.gitconfig Можно даже name не трогать. Emailы, как вы все знаете, добываются проще простого - из git log. Можете нарыть случайного чувака в любом списке рассылки разработчиков любого проекта - там куда ни ткни - у каждого на гитхабе аккаунт, даже если они этого и стесняются. А вчера я вообще пальцем в небо попал.

Лично я гитхабом ни для чего серьёзного не пользуюсь, как и самим гитом. Мне больше нравятся другие VCS. Поэтому очень странно, что такой ламер как я нашёл этот прикол. Или все давно знают?

Издеваться над людями, конечно, нехорошо. Хоть я майкрософт и не люблю, ссылочку им заслал. Ну а пока - дискотека!

@amateur80lvl
24.07.2023 12:06 UTC
Первоисточник

Комментарии

@evilsprut
24.07.2023 07:18 UTC
+23

В чём суть поста? Email пользователя GitHub в коммите ни о чём не говорит. Для подтверждения личности (коммит реально сделан этим пользователем) используют подпись коммита gpg или ssh ключём. В настройках гитхаба, к слову, есть настройка, чтобы все коммиты без подписи показывались как неверифицированные. Это не бага и не уязвимость то, о чём вы пишете. Туда же можно записать например возможность коммитить задним числом или менять какие-то данные в коммите, ту же дату например или вычистить что-то из кода.

@amateur80lvl
24.07.2023 07:21 UTC
-15

Да, это вряд-ли уязвимость. Но то, что бага - это точно.

24.07.2023 07:27 UTC
+5

Тогда такой пример. Я беру какой-нибудь репозиторий, systemd например и заливаю на свой аккаунт. Ожидаю что у каждого коммита будет показан автор, разве это баг?

24.07.2023 08:33 UTC
-4

Не тот случай. В таком сообществе как github явно не хватает верификации комиттера по ключу SSH, в момент git push.

Если точнее - верификации name и email в changeset

24.07.2023 09:46 UTC
+2

Можно подписывать отдельные коммиты с помощью gpg - тогда github показывает их как "verified" (в настройках github надо добавить свой публичный gpg-ключ). Проверять SSH-ключ - тоже хорошая идея. Попроще для пользователя, но не такая надежная - например, нельзя пушнуть чужой коммит, а также информация о подписи коммита не хранится в самом коммите.

24.07.2023 09:48 UTC
+8

Автор и коммитер это две разные сущности внутри коммита.

@alex_shpak
24.07.2023 07:30 UTC
+5

Или все давно знают?

Вообще, да, находили и раньше, но прикол хороший :)

@amateur80lvl
24.07.2023 07:56 UTC
0

Значит, я не один такой. Придётся заводить отдельного юзера на каждый гитхабовский аккаунт, чтобы уж точно не ошибиться с настройками.

24.07.2023 09:58 UTC
+3

не знаю, поможет или нет, но можно иметь разный "глобальный" gitconfig в разных каталогах. Например, в глобальном файле ~/.gitconfig добавляете секцию "includeIf":

[user]
    name = Me Myself
    email = personal@example.com
    signingkey = D34DB44F

[includeIf "gitdir:~/src/work/"]
    path = ~/.gitconfig_work

И в файле ~/.gitconfig_work добавляете параметры, которые будут иметь приоритет для всех реп в этом каталоге:

[user]
    name = Me Myself (work)
    email = work@example.com
    signingkey = D34DC0D4

[core]
    sshCommand = ssh -i ~/.ssh/work_ed25519

24.07.2023 10:53 UTC
0

Как-то пугающе сложно выглядит :) Подозреваю, должна быть простая возможность иметь локальный .gitconfig Но я не фанат git и слишком ленивый, чтобы пробовать. Так, наступил на грабли - почесал репу - написал заметку - пошёл дальше :)

@ris58h
24.07.2023 07:34 UTC
+4

Зачем это в новостях?

@amateur80lvl
24.07.2023 07:57 UTC
-3

Уже ничего сделать не могу - доступ закрыт.

24.07.2023 08:04 UTC
0

Перенесли в статьи и закрыли, если точнее :-)

@ogost
24.07.2023 07:37 UTC
+2

Все уже давно знают об этом Читал об этом некоторое время назад, тогда гитхаб ответил в стиле "это не баг, это фича".

UPD: я буду обновлять комментарии до того, как отправить свой.

@Sunrise357
24.07.2023 08:01 UTC
+5

На моей практике, до просмотра Гитхаба никогда не доходило. Либо зовут на техническое собеседование, либо сразу отказ на уровне HR по формальным признакам(сейчас ещё и гражданству) и всё.

@emerald_isle
24.07.2023 08:48 UTC
-1

Ничего себе, это где вам по национальному признаку отказывают? Это же дискриминация. Если поймать на этом, можно по судам затаскать и разорить за такое...

24.07.2023 09:05 UTC
+3

Для Вас новость, что сейчас везде отказывают? В ЛинкедИн достаточно выставить локацию Грузия или Казахстан (иначе вообще отвечать не будут), и можно писать рекрутёрам и любоваться на ответы.

25.07.2023 21:31 UTC
-2

Не приходило в голову. Никогда не приходилось бывать ни в Грузии, ни в Казахстане. Значит, держаться подальше оттуда.

24.07.2023 10:11 UTC
+2

Все нормально, суд уже разрешил. https://habr.com/ru/news/744616/

24.07.2023 11:48 UTC
0

У меня такое в Германии было

@Gordon01
24.07.2023 09:29 UTC
+1
@azizoid
24.07.2023 09:47 UTC
+4

По скриншоту я решил что сейчас начнется холивар на тему как надо и как не надо подписывать коммиты, или с какой периодичностью надо коммитить и тд.
Я был очень удивлен увидев вот ЭТО! эх, фантазия фантазия

@SergeiMinaev
24.07.2023 11:31 UTC
0

Не реалистично. Торвальдс должен был предыдущие два заревертить с пояснением, что так пишут только криворукие идиоты :)

Если серьёзно, то стоило перед публикацией погуглить, потому что это известная баго-фича.

@amateur80lvl
24.07.2023 11:58 UTC
-2

Каюсь. Виноват. Но, как в том анекдоте - "если-б я в полу такие щели оставлял, меня-б давно с работы уволили".

@lorc
24.07.2023 12:04 UTC
+2

Ну типа да. Децентрализованное хранилище кода позволяет создавать какие угодно коммиты. Если почитать ман на git-commit то окажется что можно не только менять автора и коммитера (это разные люди, как тут уже верно заметили), но и дату. Более того, `git rebase` позволяет как угодно перекраивать историю, а `git filter-branch` - вообще в автоматическом режиме удалять из истории авторов, файлы и каталоги.

И это все не бага, как тут пишут. Это просто следствие того что гит - это распределенная система. Вопрос доверия в распределенных системах - это отдельная сложная история, которую гит сознательно игнорирует. Да, можно подписывать коммиты. Но подпись будет слетать если слать патч через мейлинг лист, при рибейзе, при бэкпортировании коммита в другой бранч и вообще на каждый чих. Поэтому обычно подписывают только теги.

@amateur80lvl
24.07.2023 12:23 UTC
-1

Не, насколько мне видится, тут всё строго по юникс философии: делать одно дело и делать его хорошо. Поэтому git - сам по себе, транспорт - сам по себе. И какая там авторизация у транспорта гиту абсолютно до фонаря. Для разработчиков ядра, которые себе этот гит сделали это норм - они там и так все умные и не косячат как я, а для гитхаба - увы, надо бы верифицировать пожёстче.

@mimicate
24.07.2023 12:41 UTC
+1

Кажется, на Хабре уже была статья про это

@amateur80lvl
24.07.2023 13:04 UTC
0

Ok, ждём ещё таких статей :)

@klirichek
24.07.2023 12:50 UTC
+2

Вот если бы вы прикрутили асик, и файл с солью в проект так, чтобы он вам сделал коммит с красивым хешем (по аналогии с блокчейном BTC) - это было бы по крайней мере забавно (хоть и ограниченно полезно). А приделать произвольный email к коммиту - тут разве что чуть светит фича гитхаба, который подставит аватарку по адресу.