Накручиваем голоса за предложения по улучшению GitKraken
Один наш заказчик переехал с привычного, всеми обожаемого GitHub в бездуховный GitHub Enterprise на своих серверах. А это значит что:
- И из-за какого-то бага GitKraken не показывает иконку организации у remote веток (а вот с этим я мириться не хочу)
Уже есть предложение на исправление этого бага (и еще одно), нужно только за него проголосовать. Я проголосовал. Но одного голоса мало чтобы что-то изменить. Поэтому я решил сделать бота который будет голосовать за меня. Много голосовать. Чтобы разработчики обратили внимание на эту проблему и поправили баг.
Как устроено голосование? Когда вы заходите на сайт вам насыпают целую охапку кук. По кукам вас идентифицируют и не дают голосовать повторно. Куки можно очистить и таким образом проголосовать где-то 3 раза, потом количество голосов перестает расти. Они ограничивают по IP адресу, но на следующий день можно повторить (или сменить IP адрес).
При нажатии на кнопку голосования идет отправка ничем не примечательного POST запроса, кроме разве что того, что вместе с куками надо передать CSRF-токен и текущую дату. CSRF-токен находится внутри html странички и его можно спокойно выдрать регуляркой.
Быстренько это все кодируем, заливаем на GitHub, настраиваем cron-джобу в GitHub Actions и радуемся постепенно растущим голосам. Пока настроил запуск джобы раз в час, в ограничение по IP не должно упереться, т.к. у GitHub Actions используются широкий пул IP адресов. Ну и я не смог удержаться чтобы не голосовать и за другие предложения 😉.
Исходники с деталями реализации: https://github.com/KillWolfVlad/gk-upvote.
UPD от 13.12.2023: Когда количество голосов перевалило за 1.4K, разработчики это заметили и подзакрутили гайки: теперь при попытке постучаться на сайт через GitHub Actions CloudFlare отдает 403. Также они «скрутили» обратно все накрученные голоса.
Но главное — цель достигнута. Баг с отображением иконки у remote веток они починили. Так что этот проект можно со спокойной душой закрывать и идти дальше — покорять новые вершины 🏔️.
Хотите нанять команду профессионалов или хотите работать в команде профессионалов? Тогда приходите к нам в https://byndyusoft.com. Будем рады сотрудничеству 🤝