A API python é a mesma que a json api. A única diferença é que você eval () no código de retorno e você obtém objetos python em vez de precisar chamar uma biblioteca json.
Respondendo sua pergunta original em Python puro, isso é o que eu fiz para o nosso trabalho (isso é chamado de hook pós-commit). Por favor, note que temos http auth na frente do nosso hudson que torna as coisas mais complicadas.
import httplib
import base64
TESTING = False
def notify_hudson(repository,revision):
username = 'XXX'
password = 'XXX'
server = "XXX"
cmd = 'svnlook uuid %(repository)s' % locals()
#we strip the \n at the end of the input
uuid = os.popen(cmd).read().strip()
cmd = 'svnlook changed --revision %(revision)s %(repository)s' % locals()
body = os.popen(cmd).read()
#we strip the \n at the end of the input
base64string = base64.encodestring('%s:%s' % (username, password)).strip()
headers = {"Content-Type":"text/plain",
"charset":"UTF-8",
"Authorization":"Basic %s" % base64string
}
path = "/subversion/%(uuid)s/notifyCommit?rev=%(revision)s" % locals()
if not TESTING:
conn = httplib.HTTPSConnection(server)
conn.request("POST",path,body,headers)
response = conn.getresponse()
conn.close()
if response.status != 200:
print >> sys.stderr, "The commit was successful!"
print >> sys.stderr, "But there was a problem with the hudson post-commit hook"
print >> sys.stderr, "Please report this to the devteam"
print >> sys.stderr, "Http Status code %i" % response.status
notify_hudson(repository,revision)