diff --git a/docs/api/api.rst b/docs/api/api.rst new file mode 100644 --- /dev/null +++ b/docs/api/api.rst @@ -0,0 +1,111 @@ +.. _api: + + +API +=== + + +Starting from RhodeCode version 1.2 a simple API was implemented. +There's a single schema for calling all api methods. API is implemented +with JSON protocol both ways. An url to send API request in RhodeCode is +/_admin/api + + +All clients need to send JSON data in such format:: + + { + "api_key":"", + "method":"", + "args":{"":""} + } + +Example call for autopulling remotes repos using curl:: + curl https://server.com/_admin/api -X POST -H 'content-type:text/plain' --data-binary '{"api_key":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull","args":{"repo":"CPython"}}' + +Simply provide + - *api_key* for access and permission validation. + - *method* is name of method to call + - *args* is an key:value list of arguments to pass to method + +.. note:: + + api_key can be found in your user account page + + +RhodeCode API will return always a JSON formatted answer:: + + { + "result": "", + "error": null + } + +All responses from API will be `HTTP/1.0 200 OK`, if there's an error while +calling api *error* key from response will contain failure description +and result will be null. + +API METHODS ++++++++++++ + + +pull +---- + +Pulls given repo from remote location. Can be used to automatically keep +remote repos up to date. This command can be executed only using api_key +belonging to user with admin rights + +INPUT:: + + api_key:"" + method: "pull" + args: {"repo":} + +OUTPUT:: + + result:"Pulled from " + error:null + + +create_user +----------- + +Creates new user in RhodeCode. This command can be executed only using api_key +belonging to user with admin rights + +INPUT:: + + api_key:"" + method: "create_user" + args: {"username": "", + "password": "", + "active": "", + "admin": "", + "name": "", + "lastname": "", + "email": ""} + +OUTPUT:: + + result:{"id": , + "msg":"created new user "} + error:null + + +create_users_group +------------------ + +creates new users group. This command can be executed only using api_key +belonging to user with admin rights + +INPUT:: + + api_key:"" + method: "create_user" + args: {"name": "", + "active":""} + +OUTPUT:: + + result:{"id": , + "msg":"created new users group "} + error:null