the intent of this thing is to scan configured projects' merge requests,
and automatically assign them to designated code reviewers. if someone
says "LGTM" in the merge request thread, that counts as a review and the
bot either selects another reviewer or assigns the thing to a designated
merge approver for the final approval and merge
this is most of the way there, but not done yet. things still to do:
1) more strings than "LGTM", but we should be careful to avoid things
that someone might actually say
2) i'm trying to avoid it but i probably need to track the 2 of 2
reviewer message separate from the message assigning the merge
request to an approver. it's plausible that a reviewer is also an
approver, and if the last reviewer is a candidate approver, the
script does nothing, but we probably want it to still log the 2 of 2
part. i could track the "nagging" for 2 of 2 messages, to avoid
the bot repeating itself, but that seems unfortunately annoying
for the moment this is for the password change url used in the auth
dropdown, and a better login page, but this might become other stuff
eventually too. the signup page exists and is linked to, even if i don't
have a great reason for this to exist
bunch of templates added now to support the intentional and
unintentional stuff
this has been tested in a python 3.4 environment. i'm not sure if all of
these changes were necessary to make this py3 compatible, but it works,
so i'm committing it
this moves the dispatcher functionality that used to be in the old
ircbot directly to django REST framework, which is more robust and
allows for cooler stuff down the road. this still retains the ability to
have the bot privmsg, that still happens over the XML-RPC interface,
this is just a more convenient frontend to that
WARNING!
there's no going back now. this change is *huge* but it was overdue.
WARNING!
the database backend is now mysql. modules that should use a database
but don't yet were left untouched, they'll come later. scripts haven't
been converted yet, though i'm pretty sure i'll need to soon.
while i was going through everything, connection/cursor idioms were
cleaned up, as were a bunch of log messages and exception handling. this
change is so gross i'm happy things appear to be working, which is
the case --- all modules are lightly tested.