Анонимный код на GitHub: обзор инструмента gitMask
Life-Hack [Жизнь-Взлом]/ХакингОпенсорс-разработчик Джейсон Кулатунга (Jason Kulatunga) представил проект gitMask, позволяющий программистам делать свои коммиты в GitHub анонимными.
Last login: Sat Aug 5 2017 23:34:14 on ttys000 ➜ ~ git clone https://github.com/AnalogJ/gitmask.git ➜ ~ git checkout -b feat_branch ➜ ~ echo "update readme" >> README.md ➜ ~ git commit -am "Commits will be squashed and messages overwritten" ➜ ~ git bundle create commits.bundle origin/master..feat_branch ➜ ~ curl -L -X PUT --upload-file commits.bundle https://git.gitmask.com/v1/bundle/github.com/AnalogJ/gitmask/master # Gitmask обработает ваши «бандлы» в фоновом режиме. # В течение 30 секунд в целевом репозитории откроется новый pull request. ➜ ~
Зачем это нужно?
- Приватность. GitHub работает под эгидой «социального кодинга». Это значит, что каждый коммит разработчика виден всем;
- Спорные проекты. Если вы считаете, что DICSS — это забавно, это совсем не значит, что вы хотите, чтобы ваш босс знал об этом.
Как это работает?
Всё, что требуется от разработчика — это создать git bundle и загрузить его на gitMask. «Бандлы» git – это упаковочные бинарные файлы для безопасной передачи контента, который в обычной ситуации отправляется по сети командой git push, через любые электронные ресурсы. Создать bundle позволяет команда git bundle create.
git bundle help usage: git bundle create <file> <git-rev-list args> or: git bundle verify <file> or: git bundle list-heads <file> [<refname>...] or: git bundle unbundle <file> [<refname>...]
Теперь, если изменения были внесены в bitcoin/bitcoin, то для запуска анонимайзера достаточно одной команды:
curl -L -X PUT –upload-file commits.bundle https://git.gitmask.com/v1/bundle/github.com/bitcoin/bitcoin/master
Как только код «запушен» в gitMask, из коммитов удаляется вся персональная информация: имена авторов, адреса электронной почты и временные отметки. Pull request автоматически посылается в репозиторий GitHub с внесёнными изменениями, и теперь IP — это gitMask, а автор кода — анонимный аккаунт на gitMask.