#!/usr/bin/python
"""
Example on how to use the Allura API w/ auth
"""
import hmac, hashlib
from datetime import datetime
import urllib
from urllib2 import urlopen
from urlparse import urlparse
class Signer(object):
def __init__(self, secret_key, api_key):
self.secret_key = secret_key
self.api_key = api_key
def __call__(self, path, params):
if self.api_key is None:
return params
params.append(('api_key', self.api_key))
params.append(('api_timestamp', datetime.utcnow().isoformat()))
message = path + '?' + urllib.urlencode(sorted(params))
digest = hmac.new(self.secret_key, message, hashlib.sha256).hexdigest()
params.append(('api_signature', digest))
return params
SECRET_KEY = ''
API_KEY = ''
URL = 'https://opensourceprojects.eu/rest/p/pristine/wp1/wp1tickets/'
def main():
sign = Signer(SECRET_KEY, API_KEY)
queryparams = sign(urlparse(URL).path, [])
result = urlopen(URL+'?'+urllib.urlencode(queryparams))
print(result.read())
main()