When redmine is installed in a container (as a test fixture for instance) with
$ docker run --name=redmine -d -p 10080:80 \ -v $(pwd)/data/redmine:/home/redmine/data \ -v /var/run/docker.sock:/run/docker.sock \ -v $(which docker):/bin/docker sameersbn/redmine:2.6.1
the following script can be used to enable the REST API with redmine-enable-rest-api.py http://localhost:10080 admin admin
import sys
import re
import requests
def params(page):
(csrf_token,)=re.findall(r'meta content="(.*?)" name="csrf-token"', page.text)
(csrf_param,)=re.findall(r'meta content="(.*?)" name="csrf-param"', page.text)
return {csrf_param:csrf_token}
def enable_rest_api(url, user, password):
s = requests.Session()
p = params(s.get(url + '/login'))
p.update({"username":user, "password":password})
s.post(url + '/login', params=p)
p = params(s.get(url + '/settings?tab=authentication'))
p.update({'settings[rest_api_enabled]':'1'})
s.post(url + '/settings/edit?tab=authentication', params=p)
enable_rest_api(*sys.argv[1:])

