Комментарии 29
В чём суть поста? Email пользователя GitHub в коммите ни о чём не говорит. Для подтверждения личности (коммит реально сделан этим пользователем) используют подпись коммита gpg или ssh ключём. В настройках гитхаба, к слову, есть настройка, чтобы все коммиты без подписи показывались как неверифицированные. Это не бага и не уязвимость то, о чём вы пишете. Туда же можно записать например возможность коммитить задним числом или менять какие-то данные в коммите, ту же дату например или вычистить что-то из кода.
Да, это вряд-ли уязвимость. Но то, что бага - это точно.
Тогда такой пример. Я беру какой-нибудь репозиторий, systemd например и заливаю на свой аккаунт. Ожидаю что у каждого коммита будет показан автор, разве это баг?
Не тот случай. В таком сообществе как github явно не хватает верификации комиттера по ключу SSH, в момент git push.
Если точнее - верификации name и email в changeset
Можно подписывать отдельные коммиты с помощью gpg - тогда github показывает их как "verified" (в настройках github надо добавить свой публичный gpg-ключ). Проверять SSH-ключ - тоже хорошая идея. Попроще для пользователя, но не такая надежная - например, нельзя пушнуть чужой коммит, а также информация о подписи коммита не хранится в самом коммите.
Автор и коммитер это две разные сущности внутри коммита.
Или все давно знают?
Вообще, да, находили и раньше, но прикол хороший :)
Значит, я не один такой. Придётся заводить отдельного юзера на каждый гитхабовский аккаунт, чтобы уж точно не ошибиться с настройками.
не знаю, поможет или нет, но можно иметь разный "глобальный" 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
Зачем это в новостях?
Все уже давно знают об этом Читал об этом некоторое время назад, тогда гитхаб ответил в стиле "это не баг, это фича".
UPD: я буду обновлять комментарии до того, как отправить свой.
На моей практике, до просмотра Гитхаба никогда не доходило. Либо зовут на техническое собеседование, либо сразу отказ на уровне HR по формальным признакам(сейчас ещё и гражданству) и всё.
Ничего себе, это где вам по национальному признаку отказывают? Это же дискриминация. Если поймать на этом, можно по судам затаскать и разорить за такое...
Для Вас новость, что сейчас везде отказывают? В ЛинкедИн достаточно выставить локацию Грузия или Казахстан (иначе вообще отвечать не будут), и можно писать рекрутёрам и любоваться на ответы.
Все нормально, суд уже разрешил. https://habr.com/ru/news/744616/
У меня такое в Германии было
По скриншоту я решил что сейчас начнется холивар на тему как надо и как не надо подписывать коммиты, или с какой периодичностью надо коммитить и тд.
Я был очень удивлен увидев вот ЭТО! эх, фантазия фантазия
Не реалистично. Торвальдс должен был предыдущие два заревертить с пояснением, что так пишут только криворукие идиоты :)
Если серьёзно, то стоило перед публикацией погуглить, потому что это известная баго-фича.
Ну типа да. Децентрализованное хранилище кода позволяет создавать какие угодно коммиты. Если почитать ман на git-commit
то окажется что можно не только менять автора и коммитера (это разные люди, как тут уже верно заметили), но и дату. Более того, `git rebase` позволяет как угодно перекраивать историю, а `git filter-branch` - вообще в автоматическом режиме удалять из истории авторов, файлы и каталоги.
И это все не бага, как тут пишут. Это просто следствие того что гит - это распределенная система. Вопрос доверия в распределенных системах - это отдельная сложная история, которую гит сознательно игнорирует. Да, можно подписывать коммиты. Но подпись будет слетать если слать патч через мейлинг лист, при рибейзе, при бэкпортировании коммита в другой бранч и вообще на каждый чих. Поэтому обычно подписывают только теги.
Не, насколько мне видится, тут всё строго по юникс философии: делать одно дело и делать его хорошо. Поэтому git - сам по себе, транспорт - сам по себе. И какая там авторизация у транспорта гиту абсолютно до фонаря. Для разработчиков ядра, которые себе этот гит сделали это норм - они там и так все умные и не косячат как я, а для гитхаба - увы, надо бы верифицировать пожёстче.
Кажется, на Хабре уже была статья про это
Вот если бы вы прикрутили асик, и файл с солью в проект так, чтобы он вам сделал коммит с красивым хешем (по аналогии с блокчейном BTC) - это было бы по крайней мере забавно (хоть и ограниченно полезно). А приделать произвольный email к коммиту - тут разве что чуть светит фича гитхаба, который подставит аватарку по адресу.
Покажи мне свой гитхаб