Все, конечно же, в курсе, что гитхаб - это такая штучка, которую айтишник при первом знакомстве обязательно должен показать. И не дай бог, если твой гитхаб окажется меньше, чем у того парня.
Мне в жизни не повезло - у меня он маленький. Но зато какие люди побывали на нём - смотрите: Гвидо Ван Россум, Леннарт Поттеринг, и - о боже! - сам Линус Торвальдс!
Только они об этом ещё не знают.
Обнаружил случайно. Достаточно написать email участника в ~/.gitconfig Можно даже name не трогать. Emailы, как вы все знаете, добываются проще простого - из git log. Можете нарыть случайного чувака в любом списке рассылки разработчиков любого проекта - там куда ни ткни - у каждого на гитхабе аккаунт, даже если они этого и стесняются. А вчера я вообще пальцем в небо попал.
Лично я гитхабом ни для чего серьёзного не пользуюсь, как и самим гитом. Мне больше нравятся другие VCS. Поэтому очень странно, что такой ламер как я нашёл этот прикол. Или все давно знают?
Издеваться над людями, конечно, нехорошо. Хоть я майкрософт и не люблю, ссылочку им заслал. Ну а пока - дискотека!
Комментарии (29)
alex_shpak
24.07.2023 07:18+6Или все давно знают?
Вообще, да, находили и раньше, но прикол хороший :)
amateur80lvl Автор
24.07.2023 07:18Значит, я не один такой. Придётся заводить отдельного юзера на каждый гитхабовский аккаунт, чтобы уж точно не ошибиться с настройками.
alex_shpak
24.07.2023 07:18+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
amateur80lvl Автор
24.07.2023 07:18Как-то пугающе сложно выглядит :) Подозреваю, должна быть простая возможность иметь локальный .gitconfig Но я не фанат git и слишком ленивый, чтобы пробовать. Так, наступил на грабли - почесал репу - написал заметку - пошёл дальше :)
ris58h
24.07.2023 07:18+5Зачем это в новостях?
ogost
24.07.2023 07:18+2Все уже давно знают об этомЧитал об этом некоторое время назад, тогда гитхаб ответил в стиле "это не баг, это фича".UPD: я буду обновлять комментарии до того, как отправить свой.
Sunrise357
24.07.2023 07:18+4На моей практике, до просмотра Гитхаба никогда не доходило. Либо зовут на техническое собеседование, либо сразу отказ на уровне HR по формальным признакам(сейчас ещё и гражданству) и всё.
emerald_isle
24.07.2023 07:18Ничего себе, это где вам по национальному признаку отказывают? Это же дискриминация. Если поймать на этом, можно по судам затаскать и разорить за такое...
Sunrise357
24.07.2023 07:18+2Для Вас новость, что сейчас везде отказывают? В ЛинкедИн достаточно выставить локацию Грузия или Казахстан (иначе вообще отвечать не будут), и можно писать рекрутёрам и любоваться на ответы.
emerald_isle
24.07.2023 07:18-2Не приходило в голову. Никогда не приходилось бывать ни в Грузии, ни в Казахстане. Значит, держаться подальше оттуда.
azizoid
24.07.2023 07:18+4По скриншоту я решил что сейчас начнется холивар на тему как надо и как не надо подписывать коммиты, или с какой периодичностью надо коммитить и тд.
Я был очень удивлен увидев вот ЭТО! эх, фантазия фантазия
SergeiMinaev
24.07.2023 07:18Не реалистично. Торвальдс должен был предыдущие два заревертить с пояснением, что так пишут только криворукие идиоты :)
Если серьёзно, то стоило перед публикацией погуглить, потому что это известная баго-фича.amateur80lvl Автор
24.07.2023 07:18-2Каюсь. Виноват. Но, как в том анекдоте - "если-б я в полу такие щели оставлял, меня-б давно с работы уволили".
lorc
24.07.2023 07:18+2Ну типа да. Децентрализованное хранилище кода позволяет создавать какие угодно коммиты. Если почитать ман на
git-commit
то окажется что можно не только менять автора и коммитера (это разные люди, как тут уже верно заметили), но и дату. Более того, `git rebase` позволяет как угодно перекраивать историю, а `git filter-branch` - вообще в автоматическом режиме удалять из истории авторов, файлы и каталоги.И это все не бага, как тут пишут. Это просто следствие того что гит - это распределенная система. Вопрос доверия в распределенных системах - это отдельная сложная история, которую гит сознательно игнорирует. Да, можно подписывать коммиты. Но подпись будет слетать если слать патч через мейлинг лист, при рибейзе, при бэкпортировании коммита в другой бранч и вообще на каждый чих. Поэтому обычно подписывают только теги.
amateur80lvl Автор
24.07.2023 07:18-1Не, насколько мне видится, тут всё строго по юникс философии: делать одно дело и делать его хорошо. Поэтому git - сам по себе, транспорт - сам по себе. И какая там авторизация у транспорта гиту абсолютно до фонаря. Для разработчиков ядра, которые себе этот гит сделали это норм - они там и так все умные и не косячат как я, а для гитхаба - увы, надо бы верифицировать пожёстче.
klirichek
24.07.2023 07:18+2Вот если бы вы прикрутили асик, и файл с солью в проект так, чтобы он вам сделал коммит с красивым хешем (по аналогии с блокчейном BTC) - это было бы по крайней мере забавно (хоть и ограниченно полезно). А приделать произвольный email к коммиту - тут разве что чуть светит фича гитхаба, который подставит аватарку по адресу.
evilsprut
В чём суть поста? Email пользователя GitHub в коммите ни о чём не говорит. Для подтверждения личности (коммит реально сделан этим пользователем) используют подпись коммита gpg или ssh ключём. В настройках гитхаба, к слову, есть настройка, чтобы все коммиты без подписи показывались как неверифицированные. Это не бага и не уязвимость то, о чём вы пишете. Туда же можно записать например возможность коммитить задним числом или менять какие-то данные в коммите, ту же дату например или вычистить что-то из кода.
amateur80lvl Автор
Да, это вряд-ли уязвимость. Но то, что бага - это точно.
evilsprut
Тогда такой пример. Я беру какой-нибудь репозиторий, systemd например и заливаю на свой аккаунт. Ожидаю что у каждого коммита будет показан автор, разве это баг?
amateur80lvl Автор
Не тот случай. В таком сообществе как github явно не хватает верификации комиттера по ключу SSH, в момент git push.
Если точнее - верификации name и email в changeset
alex_shpak
Можно подписывать отдельные коммиты с помощью gpg - тогда github показывает их как "verified" (в настройках github надо добавить свой публичный gpg-ключ). Проверять SSH-ключ - тоже хорошая идея. Попроще для пользователя, но не такая надежная - например, нельзя пушнуть чужой коммит, а также информация о подписи коммита не хранится в самом коммите.
fshp
Автор и коммитер это две разные сущности внутри коммита.