Re: Commit bot without password
From: Kim Gräsman <kim.grasman_at_gmail.com>
Date: Sat, 6 Sep 2014 09:19:34 +0200
Hi all,
This worked out really well for us. We use the Apache SVN server on
Instead, we inspected the transaction file and parsed it manually. I
One snag is that it seems like authorization happens before the
Thanks for your excellent suggestions!
Here's the little module we use (transcribed, I might have made syntax
---- import os def parse_revprops(revprop_data): revprops = {} for index, line in enumerate(revprop_data): if line == "END" or line == "": continue if (index % 4) == 1: current_key = line elif (index % 4) == 3: revprops[current_key] = line return revprops def serialize_revprops(revprops): output = "" for key, value in revprops.items(): output += "K %d\n" % len(key) output += "%s\n" % key output += "V %d\n" % len(value) output += "%s\n" % value return output + "END\n" def rewrite_author(subversion_folder, transaction_id): # Read revprops transaction file directly. props_file = os.path.join(subversion_folder, "db", "transactions", transaction_id + ".txn", "props") with open(props_file, "r") as fd: revprops = parse_revprops(fd.read().splitlines()) # Only rewrite author for bot commits if revprops["svn:author"] != "bot": return True # If there's no on-behalf-of specified, just commit as bot directly. if "on-behalf-of" not in revprops: return True # Move svn:author to committed-by property, and on-behalf-of to svn:author. revprops["committed-by"] = revprops["svn:author"] revprops["svn:author"] = revprops["on-behalf-of"] del revprops["on-behalf-of"] # Write back. with open(props_file, "w", newline="\n") as fd: fd.write(serialize_revprops(revprops)) return True ---- - KimReceived on 2014-09-06 09:20:05 CEST |
This is an archived mail posted to the Subversion Users mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.