#pragma once #include #include #include #include "config.hpp" #include "irc/client.hpp" namespace bot { struct Commit { std::string sha; std::string commiter_name; std::string message; }; class GithubListener { public: GithubListener(const Configuration &configuration, irc::Client &irc_client) : configuration(configuration), irc_client(irc_client){}; ~GithubListener(){}; void run(); private: void check_for_listeners(); std::unordered_map> check_new_commits(); void notify_about_commits( const std::unordered_map> &new_commits); std::vector ids; std::unordered_map> commits; irc::Client &irc_client; const Configuration &configuration; }; }