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

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

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

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

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

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

Комментарии (29)


  1. evilsprut
    24.07.2023 07:18
    +23

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


    1. amateur80lvl Автор
      24.07.2023 07:18
      -16

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


      1. evilsprut
        24.07.2023 07:18
        +6

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


        1. amateur80lvl Автор
          24.07.2023 07:18
          -4

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

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


          1. alex_shpak
            24.07.2023 07:18
            +2

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


          1. fshp
            24.07.2023 07:18
            +8

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


  1. alex_shpak
    24.07.2023 07:18
    +6

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

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


    1. amateur80lvl Автор
      24.07.2023 07:18

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


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


        1. amateur80lvl Автор
          24.07.2023 07:18

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


  1. ris58h
    24.07.2023 07:18
    +5

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


    1. amateur80lvl Автор
      24.07.2023 07:18
      -3

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


      1. Exosphere
        24.07.2023 07:18

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


  1. ogost
    24.07.2023 07:18
    +2

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

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


  1. Sunrise357
    24.07.2023 07:18
    +4

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


    1. emerald_isle
      24.07.2023 07:18

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


      1. Sunrise357
        24.07.2023 07:18
        +2

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


        1. emerald_isle
          24.07.2023 07:18
          -2

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


      1. dave2
        24.07.2023 07:18
        +2

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


      1. witz
        24.07.2023 07:18

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



  1. azizoid
    24.07.2023 07:18
    +4

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


  1. SergeiMinaev
    24.07.2023 07:18

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

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


    1. amateur80lvl Автор
      24.07.2023 07:18
      -2

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


  1. lorc
    24.07.2023 07:18
    +2

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

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


    1. amateur80lvl Автор
      24.07.2023 07:18
      -1

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


  1. mimicate
    24.07.2023 07:18
    +1

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


    1. amateur80lvl Автор
      24.07.2023 07:18

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


  1. klirichek
    24.07.2023 07:18
    +2

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