Идея приложения в том, чтобы иметь под рукой функционал для автоматизированных действий на Github. Также с его помощью планируется сбор метрик и сегментация пользователей, с которыми можно взаимодействовать для достижения конечной цели.
Для системы выделяются следующие задачи:
- Автоматизировать балансировку подписчиков/подписок. Необходимо отписываться от людей, на которых ранее был подписан пользователь, но которые не подписались в ответ.
- Собрать метрики, по которым можно сегментировать пользователей. Например, тех кто охотно подписывается в ответ или ставит звезды.
- Автоматизировать длительный процесс выполнения стратегии "Зуб за Зуб". Принцип стратегии в контексте Github состоит из набора подписчиков за счет взаимной подписки, а также получении звезд за счет взаимного обмена.
Для работы с проектом требуется наличие на используемой машине следующих инструментов:
- Docker
- Docker Compose
- Bash / Shell
- Make*
- Необязательные инструменты.
При установленном сборщике проектов Make:
make init
Запуск через Docker Compose:
docker compose build \
&& docker compose up -d --remove-orphans \
&& docker compose exec app composer i
Перед использованием команд создайте Personal Access Token с помощью инструкции.
TODO: Описать минимальный набор доступов для токена.
Проверка пользователей, которые не подписались в ответ
docker compose exec app php bin/console github:subscribers:check-unfollowing \
--token='your github personal access token' \
--username='your username'
Синхронизирует список подписчиков целевого пользователя.
(!) ВАЖНО: метод перед работой очищает таблицу базы данных, чтобы данные всегда были актуальны.
docker compose exec app php bin/console github:subscribers:sync \
--token='<your personal token>' \
--username='<your user name>'
Синхронизирует список подписок целевого пользователя.
(!) ВАЖНО: метод перед работой очищает таблицу базы данных, чтобы данные всегда были актуальны.
docker compose exec app php bin/console github:subscriptions:sync \
--token='<your personal token>' \
--username='<your user name>'
(!) ВАЖНО: метод перед работой очищает таблицу базы данных, чтобы данные всегда были актуальны.
docker compose exec app php bin/console github:subscriptions:balancing \
--token='<your personal token>' \
--username='<your user name>'
(!) ВАЖНО: метод перед работой очищает таблицу базы данных, чтобы данные всегда были актуальны.
docker compose exec app php bin/console github:subscribers:balancing \
--token='<your personal token>' \
--username='<your user name>'