Commitwitter – SVN commits nach Twitter zwitschern
Subversion, kurz SVN sollte jedem Programmierer ein Begriff sein. Das Open Source Tool zur Versionsverwaltung von Dateien und Verzeichnissen dürfte bei vielen Softwareentwicklern hoch im Kurs stehen. Ebenso erfreut sich der Mikro-Blogging Service Twitter größter Beliebtheit und ist sicherlich den Meisten ein Begriff.
Beide Tools können in hohem Maße die Produktivitäts- bzw. Kommunikationseffizienz steigern. Es liegt deshalb nahe diese Beiden Ansätze miteinander zu vereinen. Commitwitter verfolgt genau diesen Ansatz. Unsere Idee ist nach jedem Commit die committete Revisionsnummer, den Autor des Commits, sowie den zugehörigen Kommentar, einfach direkt an einen Twitteraccount zu senden.
Es leuchtet ein wie cool das ist, wenn man nur bedenkt, einmal eingerichtet funktioniert das ganze automatisch. Man kann ohne zusätzlichen Aufwand seine Projekte (vom ganz kleinen bis zum richtig großen ), über Twitter verfolgen und (live) erleben wie die aktuelle Entwicklung so läuft. Das Ganze wird von uns selber eingesetzt und funktioniert sehr gut. Wir möchten deshalb Commitwitter nun der Allgemeinheit über unser Lab zum Download zur Verfügung stellen.
Installation:
Als erstes braucht man nun einen Twitteraccount und ein lauffähiges SVN Repository. SVN kennt sogenannte Hook-Skripte. Das sind Skripte, welche z.B. vor oder nach einem Commit automatisch von SVN ausgeführt werden. Für Commitwitter haben wir das post-commit Hook-Skript modifiziert, welches nach jedem Commit aufgerufen wird. Im Downloadpaket ist also zunächst diese Datei interessant. Sie muss ins Hook Verzeichnis des Repositories kopiert werden bzw. mit einer eventuell schon bestehenden post-commit Datei zusammengeführt werden. Außerdem muss die Datei um folgende Angaben ergänzt werden:
- Twitter Benutzername
- Twitter Passwort
- URL zur commitwitter.php Datei
- Pre-Shared-Key (PSK)
Benutzername, Passwort und URL sind selbsterklärend. Der PSK schützt einfach die commitwitter.php vor Missbrauch und muss sowohl auf Client Seite als auch auf Server Seite definiert werden. Deshalb einen sicheren Key wählen und diesen, sowohl in der Klasse Committwitter (commitwitter.php) in die vorgesehene Konstante REMOTE_PRE_SHARED_KEY, als auch in das Hook-Skript eintragen. Nun kann niemand mehr von außen den Mechanismus missbrauchen.
Anschließend müssen die beiden Dateien, TwitterLibPHP.php, eine Twitter API für PHP, zusammen mit der commitwitter.php in ein beliebiges Verzeichnis eines Webservers, der PHP unterstützt, kopiert werden.
Eventuell muss jetzt der Server noch ein klein wenig modifiziert werden. Sollte SVN in einer chroot Umgebung betrieben werden, muss der chroot das Programm curl bekannt gemacht werden. Hierbei kann das mitgelieferte curl-for-chroot Skript behilflich sein.
Jetzt sollte alles funktionieren, sobald etwas in das Repository committed wird, wird das post-commit Hook-Skript ausgeführt, welches (über curl) die commitwitter.php aufruft. Nun werden Autor, Revisionsnummer, Repository Name und Commit Kommentar automatisch, als Status Nachricht, an den angegebenen Twitteraccount gesendet.
Ein Beispiel kann unter http://twitter.com/ilimitado/ angeschaut werden.
Kritik, Anregungen und Fragen sind herzlich willkommen, ansonsten viel Spaß mit dem Skript!
Tags: ilimitado, Internet, open source, PHP, software, svn, tools, twitter

Super Idee!
Danke für das Skript, ist echt eine feine Sache. Werde das auch gleich bei uns installieren.