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:])