Giocando con Subversion


Ieri sera ho giocato un po’ con Subversion, cercavo la possibilita’ di effettuare un post sul blog in seguito ad un commit. Conoscevo la presenza dei famosi post-commit hooks, ma quelli presenti erano relativi all’invio di una mail. Ho rispolverato il mio Python, e ho scritto questo script che, tramite l’uso della libreria xmlrpclib, contatta il servizio XML-RPC interno a WordPress, e provvede alla creazione di un nuovo post contenente i dati relativi al messaggio del commit, e l’elenco dei files modificati (questi ultimi due dati mi arrivano tramite l’invocazione del comando svnlook).
Lo script e’ veramente semplice, e molto customizzabile, spero possa essere un buono spunto per qualcuno.

Ah, ne ho parlato anche nell’ user group del Google Project Hosting, spero che mi ascoltino…

Ecco il codice

#!/usr/bin/python

import sys
import xmlrpclib
import os

xmlrpc_url = "http://localhost/wp/xmlrpc.php"
xmlrpc_username = "admin"
xmlrpc_password = "admin"
post_title = "Commit log"

repos = sys.argv[1]
rev = sys.argv[2]

log_message = os.popen('svnlook log ' + repos).read()
affected_files = os.popen('svnlook changed ' + repos).read()

server = xmlrpclib.Server(xmlrpc_url)
server.metaWeblog.newPost(1,xmlrpc_username,xmlrpc_password,{"title":post_title, "description":"Message: " + log_message + "Affetcted files: \n" + affected_files},bool(1))

Alla prox

[tags]subversion, python, XML-RPC, post-commit hooks, wordpress[/tags]

, , ,