Benutzer-Werkzeuge

Webseiten-Werkzeuge


python:ircnotify

IRCNotify für SVN und GIT

:!: Hinweis: IRCNotify ist teilweise in gitbot neugeschrieben worden. Weitere Einzelheiten im Artikel. :!:

Da ich gerne im IRC über Updates im SVN oder GIT Repository informiert werden wollte, habe ich drei kleine Skripte geschrieben. Jeweils eine kleine Funktionssammlung für SVN und GIT Operationen die direkt mit den Systembefehlen arbeiten. Das Dritte Skript ruft die Funkionen auf, bringt sie in die richtige Form und postet sie ins IRC-Netzwerk. Die Aktuelle Revision wird in einer Datei gespeichert und beim nächsten Aufruf mit der aktuellen Version auf dem Server verglichen und bei Bedarf wird eine Meldung im IRC-Netzwerk erstellt.

Die Meldung besteht dabei natürlich aus Nutzername, Revision, Datum, Meldung und bei Bedarf können auch die geänderten Dateien mit ausgegeben werden. Einfach mal schauen was alles in der Liste „allupdates“ drin ist ;)

Praktischerweise lässt man das Notify-Script per Cronjob z. B. alle 15 Minuten ausführen. Dann verbindet das Script zum IRC-Server, joint den Channel, postet Updates und verlässt anschließend den Channel wieder. Die Funktionssammlungen svncheck.py und gitcheck.py können auch für sich selbst ausgeführt werden und posten dann ganz normal auf die Standardausgabe. Es muss hier nur die svn- oder giturl (ganz unten im script) angepasst werden. Im IRC-Script tätigt man ebenfalls ganz unten im Script die Eingaben für Botname, Channel, Netzwerk usw.

Mit ein bisschen Python-Kenntnissen lässt sich die Ausgabe ohne große Probleme an die Bedürfnisse anpassen. Der Quelltext ist dokumentiert und im Dateikopf sind noch einige Informationen für die Benutzung zu finden.

Beispielausgabe

Ausgabe von svncheck.py

  fgau has updated to revision 460 on 2009-09-21 18:12. Comment: add first user dialouge to set background image - Changed files =>  
  M, /epydial /fontcolor_screen.py; M, /epydial/gsm_status_screen.py; M, /epydial/pix_screen.py; 

Ausgabe von gitcheck.py

  M. Dietrich <mdt@pyneo.org> has updated to revision b0a163b0e3d85d468dc161f0edf42ef7af9b8b0c on Sat Sep 19 13:39:56 2009. Comment: fix permitions - Changed files => 
  pyneod/src/pyhond.py  |    2 ++
  pyneod/src/pyhttpd.py |    4 +++-
  2 files changed, 5 insertions(+), 1 deletions(-)

Cronjob-Eintrag

Beispieleintrag:

*/15 * * * * cd /home/pbeck/svnbot && python svngitbot.py > /dev/null

Zuerst muss ins Verzeichnis gewechselt werden (sonst gibts ein paar Fehler ;)). Die Ausgabe auf die Standardausgabe kann direkt zu /dev/null geleitet werden.

Datei

python/ircnotify.txt · Zuletzt geändert: 2014/03/16 18:08 (Externe Bearbeitung)