This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository maintenancescripts. commit 0ae3e41ccad0c25ac97119ed9ee02ed74d0d429c Author: Mihai Moldovan <ionic@ionic.de> Date: Sun Aug 20 14:47:14 2017 +0200 git/hooks/update-script._irkerhook.py_: merge in upstream changes. --- git/hooks/update-script._irkerhook.py_ | 43 ++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 12 deletions(-) diff --git a/git/hooks/update-script._irkerhook.py_ b/git/hooks/update-script._irkerhook.py_ index 889dbd4..672fc95 100755 --- a/git/hooks/update-script._irkerhook.py_ +++ b/git/hooks/update-script._irkerhook.py_ @@ -16,6 +16,8 @@ # The default location of the irker proxy, if the project configuration # does not override it. +# +# SPDX-License-Identifier: BSD-2-Clause default_server = "ionic.de" IRKER_PORT = 10614 @@ -30,24 +32,31 @@ urlprefixmap = { "cgit": "http://%(host)s/cgi-bin/cgit.cgi/%(repo)s/commit/?id=", } -# By default, ship to the freenode #commits channel +# By default, ship to the freenode #commits list default_channels = "irc://chat.freenode.net/#x2go" # # No user-serviceable parts below this line: # -version = "2.11" +version = "2.17" -import os, sys, commands, socket, urllib, subprocess, locale, datetime, re +import os, sys, socket, urllib2, subprocess, locale, datetime, re from pipes import quote as shellquote + try: - import simplejson as json # Faster, also makes us Python-2.5-compatible + import simplejson as json # Faster, also makes us Python-2.5-compatible except ImportError: import json +try: + getstatusoutput = subprocess.getstatusoutput +except AttributeError: + import commands + getstatusoutput = commands.getstatusoutput + def do(command): - return unicode(commands.getstatusoutput(command)[1], locale.getlocale()[1] or 'UTF-8').encode(locale.getlocale()[1] or 'UTF-8') + return unicode(getstatusoutput(command)[1], locale.getlocale()[1] or 'UTF-8').encode(locale.getlocale()[1] or 'UTF-8') class Commit: def __init__(self, extractor, commit): @@ -71,13 +80,13 @@ class Commit: urlprefix = urlprefixmap.get(self.urlprefix, self.urlprefix) webview = (urlprefix % self.__dict__) + self.commit try: - if urllib.urlopen(webview).getcode() == 404: - raise IOError + # See it the url is accessible + res = urllib2.urlopen(webview) if self.tinyifier and self.tinyifier.lower() != "none": try: - # Didn't get a retrieval error or 404 on the web + # Didn't get a retrieval error on the web # view, so try to tinyify a reference to it. - self.url = open(urllib.urlretrieve(self.tinyifier + webview)[0]).read() + self.url = urllib2.urlopen(self.tinyifier + webview).read() try: self.url = self.url.decode('UTF-8') except UnicodeError: @@ -86,9 +95,15 @@ class Commit: self.url = webview else: self.url = webview + except urllib2.HTTPError as e: + if e.code == 401: + # Authentication error, so we assume the view is valid + self.url = webview + else: + self.url = "" except IOError as e: - print "IOError: {0}:{1}".format(e.errno, e.strerror) self.url = "" + print "IOError: {0}:{1}".format(e.errno, e.strerror) res = self.template % self.__dict__ return unicode(res, 'UTF-8') if not isinstance(res, unicode) else res @@ -277,7 +292,11 @@ class GitExtractor(GenericExtractor): else: # self.revformat == 'describe' commit.rev = do("git describe %s 2>/dev/null" % shellquote(commit.commit)) if not commit.rev: - commit.rev = commit.commit[:12] + # Query git for the abbreviated hash + commit.rev = do("git log -1 '--pretty=format:%h' " + shellquote(commit.commit)) + if self.urlprefix in ('gitweb', 'cgit'): + # Also truncate the commit used for the announced urls + commit.commit = commit.rev # Extract the meta-information for the commit parent = '' if self.rebase == '': @@ -452,7 +471,7 @@ def ship(extractor, commit, debug): shellquote(json.dumps(metadata.__dict__))) data = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE).stdout.read() try: - metadata.__dict__.update(json.loads(data), encoding='utf-8') + metadata.__dict__.update(json.loads(data)) except ValueError: sys.stderr.write("irkerhook.py: could not decode JSON: %s\n" % data) raise SystemExit(1) -- Alioth's /srv/git/code.x2go.org/maintenancescripts.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/maintenancescripts.git