Mercurial > hg > forks > UniversalIndentGUI
changeset 678:ffb64e82277c
Added a post-commit hook for Assembla. Using the Ruby variant.
git-svn-id: svn://svn.code.sf.net/p/universalindent/code/trunk@946 59b1889a-e5ac-428c-b0c7-476e01d41282
author | thomas_-_s <thomas_-_s@59b1889a-e5ac-428c-b0c7-476e01d41282> |
---|---|
date | Tue, 21 Apr 2009 22:25:09 +0000 |
parents | b2e7bd0b3996 |
children | 15d6826330bb |
files | hooks/post-commit hooks/post-commit.pl hooks/post-commit.rb |
diffstat | 3 files changed, 156 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hooks/post-commit Tue Apr 21 22:25:09 2009 +0000 @@ -0,0 +1,48 @@ +#!/usr/bin/env ruby + +# Run this script with: +# post-commit.rb /path/to/svn/repo revision_number + +################################################### +# Find these below values on external svn tool tab +TOOL_ID = "a5xjA-lSar3QaKeJe5afGb" # 22 chars uuid +SECRET_KEY = "eebc706060695395339a2ec351e6c08673dba53e" + +# On *BSD systems, svnlook command can be in /usr/local/bin/svnlook +SVN_LOOK_CMD = "/usr/bin/svnlook" + +################################################### +# map svn usernames with assembla accounts, if usernames differ from Assembla usernames +# Our API will search users by login, then by email +# if user will not be found, Anonymous user will be used in alerts for svn commit +USER_MAP = { + 'local_user_1' => 'assembla_login_1', + 'local_user_2' => 'assembla_login_2' + } + +################################################### +# DO NOT CHANGE ANYTHING BELOW !!! +################################################### + +require 'net/http' +require 'uri' + +API_URL = "http://www.assembla.com/changesets/" + +repo = ARGV[0] +rev = ARGV[1] + +author=`#{SVN_LOOK_CMD} author -r "#{rev}" "#{repo}"`.strip +log=`#{SVN_LOOK_CMD} log -r "#{rev}" "#{repo}"`.strip + +params = { + "tool_id" => 0, "spaces_tool_id" => TOOL_ID, "secret_key" => SECRET_KEY, + "username" => (USER_MAP[author] || author), "comment" => log, "external_id" => rev +} + +uri = URI.parse(API_URL) + +req = Net::HTTP::Post.new(uri.path) +req.set_form_data(params) + +r, rd = Net::HTTP.new(uri.host, uri.port).request(req)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hooks/post-commit.pl Tue Apr 21 22:25:09 2009 +0000 @@ -0,0 +1,60 @@ +#!/usr/bin/env perl + +# Run this script with: +# post-commit.rb /path/to/svn/repo revision_number + +################################################### +# Find these below values on external svn tool tab +$TOOL_ID = ""; # 22 chars uuid +$SECRET_KEY = "xxxxxxxx"; + +# On *BSD systems, svnlook command can be in /usr/local/bin/svnlook +$SVN_LOOK_CMD = "/usr/bin/svnlook"; + +################################################### +# map svn usernames with assembla accounts, if usernames differ from Assembla usernames +# Our API will search users by login, then by email +# if user will not be found, Anonymous user will be used in alerts for svn commit +%USER_MAP = { + 'local_user_1' => 'assembla_login_1', + 'local_user_2' => 'assembla_login_2' + }; + +################################################### +# DO NOT CHANGE ANYTHING BELOW !!! +################################################### + +$API_URL = "http://www.assembla.com/changesets/"; + +# Install below package on debian/ubuntu +# apt-get install libwww-perl + +use HTTP::Request::Common; +use LWP::UserAgent; + +$repo = $ARGV[1]; +$rev = $ARGV[2]; + +$author = `$SVN_LOOK_CMD author -r "$rev" "$repo"`; +$log = `$SVN_LOOK_CMD log -r "$rev" "$repo"`; + +chomp $author; +chomp $log; + +$ua = LWP::UserAgent->new; +$ua->agent("AssemblaApiPerlClient/0.1"); + +# Create a request +$req = POST $API_URL, + ["tool_id" => 0, "spaces_tool_id" => $TOOL_ID, "secret_key" => $SECRET_KEY, + "username" => ($USER_MAP[$author] || $author), "comment" => $log, "external_id" => $rev] +); +$req->content_type('application/x-www-form-urlencoded'); + +# Pass request to the user agent and get a response back +$res = $ua->request($req); + +# Check the outcome of the response +if (!$res->is_success) { + print $res->status_line, "\n"; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hooks/post-commit.rb Tue Apr 21 22:25:09 2009 +0000 @@ -0,0 +1,48 @@ +#!/usr/bin/env ruby + +# Run this script with: +# post-commit.rb /path/to/svn/repo revision_number + +################################################### +# Find these below values on external svn tool tab +TOOL_ID = "a5xjA-lSar3QaKeJe5afGb" # 22 chars uuid +SECRET_KEY = "eebc706060695395339a2ec351e6c08673dba53e" + +# On *BSD systems, svnlook command can be in /usr/local/bin/svnlook +SVN_LOOK_CMD = "/usr/bin/svnlook" + +################################################### +# map svn usernames with assembla accounts, if usernames differ from Assembla usernames +# Our API will search users by login, then by email +# if user will not be found, Anonymous user will be used in alerts for svn commit +USER_MAP = { + 'local_user_1' => 'assembla_login_1', + 'local_user_2' => 'assembla_login_2' + } + +################################################### +# DO NOT CHANGE ANYTHING BELOW !!! +################################################### + +require 'net/http' +require 'uri' + +API_URL = "http://www.assembla.com/changesets/" + +repo = ARGV[0] +rev = ARGV[1] + +author=`#{SVN_LOOK_CMD} author -r "#{rev}" "#{repo}"`.strip +log=`#{SVN_LOOK_CMD} log -r "#{rev}" "#{repo}"`.strip + +params = { + "tool_id" => 0, "spaces_tool_id" => TOOL_ID, "secret_key" => SECRET_KEY, + "username" => (USER_MAP[author] || author), "comment" => log, "external_id" => rev +} + +uri = URI.parse(API_URL) + +req = Net::HTTP::Post.new(uri.path) +req.set_form_data(params) + +r, rd = Net::HTTP.new(uri.host, uri.port).request(req)