GSoC/GCI Archive
Google Code-in 2014 Copyleft Games

HGBot: IRC Repo Verbose

completed by: Michal Proszek

mentors: Jon Neal, Arc Riley, Terri Oda, David Czech, AJ Williams, Amaury Medeiros

HGBot is a Python program that automates our Mercurial repository management, handles Mercurial authentication, and provides user interfaces such as IRC.

When a new repository is added, or the channels it announces to changes, the first we know about it is when a commit is sent. This silent behavior is less than ideal.

Add the necessary code such that whenever a repository's channels are changed, the changes are evaluated and announced to the respective channels. This may seem like a trivial change until you consider that HGBot's channel membership is also updated at the same time.

In case the change results in HGBot leaving a channel, the announcement should be made prior to leaving. When the change results in joining a new channel, the change should be announced after joining.

The announcement should use color similar to changeset messages, list the admin responsible for the change (also as if it were a changeset), etc. Save for the lack of a revision number or commit message, this should be nearly identical to adding a new repository then committing to it.

While working on this task you should join and remain in #CopyleftGames on Freenode to get help, feedback, and guidance from mentors and other developers. Code updates which may affect your work are also announced here as they happen.

When you've done, commit your work and post the resulting changeset url to this task.