diff --git a/docs/api/api.rst b/docs/api/api.rst --- a/docs/api/api.rst +++ b/docs/api/api.rst @@ -7,7 +7,7 @@ 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 +with JSON protocol both ways. An url to send API request to RhodeCode is /_admin/api API ACCESS FOR WEB VIEWS @@ -63,7 +63,7 @@ and result will be null. API CLIENT ++++++++++ -From version 1.4 RhodeCode adds a binary script that allows to easily +From version 1.4 RhodeCode adds a script that allows to easily communicate with API. After installing RhodeCode a `rhodecode-api` script will be available. @@ -117,12 +117,13 @@ INPUT:: api_key : "" method : "pull" args : { - "repo_name" : "" + "repoid" : "" } OUTPUT:: - result : "Pulled from " + id : + result : "Pulled from ``" error : null @@ -145,9 +146,10 @@ INPUT:: OUTPUT:: + id : result: None if user does not exist or { - "id" : "", + "user_id" : "", "username" : "", "firstname": "", "lastname" : "", @@ -185,13 +187,15 @@ INPUT:: OUTPUT:: + id : result: [ { - "id" : "", + "user_id" : "", "username" : "", "firstname": "", "lastname" : "", "email" : "", + "emails": "", "active" : "", "admin" :  "", "ldap_dn" : "", @@ -216,26 +220,27 @@ INPUT:: method : "create_user" args : { "username" : "", + "email" : "", "password" : "", - "email" : "", - "firstname" : " = None", - "lastname" : " = None", - "active" : " = True", - "admin" : " = False", - "ldap_dn" : " = None" + "firstname" : " = Optional(None)", + "lastname" : " = Optional(None)", + "active" : " = Optional(True)", + "admin" : " = Optional(False)", + "ldap_dn" : " = Optional(None)" } OUTPUT:: + id : result: { - "id" : "", - "msg" : "created new user ", + "msg" : "created new user ``", "user": { - "id" : "", + "user_id" : "", "username" : "", "firstname": "", "lastname" : "", "email" : "", + "emails": "", "active" : "", "admin" :  "", "ldap_dn" : "", @@ -259,27 +264,28 @@ INPUT:: method : "update_user" args : { "userid" : "", - "username" : "", - "password" : "", - "email" : "", - "firstname" : "", - "lastname" : "", - "active" : "", - "admin" : "", - "ldap_dn" : "" + "username" : " = Optional", + "email" : " = Optional", + "password" : " = Optional", + "firstname" : " = Optional", + "lastname" : " = Optional", + "active" : " = Optional", + "admin" : " = Optional", + "ldap_dn" : " = Optional" } OUTPUT:: + id : result: { - "id" : "", "msg" : "updated user ID: ", "user": { - "id" : "", + "user_id" : "", "username" : "", "firstname": "", "lastname" : "", "email" : "", + "emails": "", "active" : "", "admin" :  "", "ldap_dn" : "", @@ -308,9 +314,10 @@ INPUT:: OUTPUT:: + id : result: { - "id" : "", - "msg" : "deleted user ID: " + "msg" : "deleted user ID: ", + "user": null } error: null @@ -328,25 +335,29 @@ INPUT:: api_key : "" method : "get_users_group" args : { - "group_name" : "" + "usersgroupid" : "" } OUTPUT:: + id : result : None if group not exist { - "id" : "", - "group_name" : "", - "active": "", + "users_group_id" : "", + "group_name" : "", + "active": "", "members" : [ - { "id" : "", + { + "user_id" : "", "username" : "", "firstname": "", "lastname" : "", "email" : "", + "emails": "", "active" : "", "admin" :  "", - "ldap" : "" + "ldap_dn" : "", + "last_login": "", }, … ] @@ -370,25 +381,29 @@ INPUT:: OUTPUT:: + id : result : [ { - "id" : "", - "group_name" : "", - "active": "", - "members" : [ - { - "id" : "", - "username" : "", - "firstname": "", - "lastname" : "", - "email" : "", - "active" : "", - "admin" :  "", - "ldap" : "" - }, - … - ] - } + "users_group_id" : "", + "group_name" : "", + "active": "", + "members" : [ + { + "user_id" : "", + "username" : "", + "firstname": "", + "lastname" : "", + "email" : "", + "emails": "", + "active" : "", + "admin" :  "", + "ldap_dn" : "", + "last_login": "", + }, + … + ] + }, + … ] error : null @@ -407,14 +422,34 @@ INPUT:: method : "create_users_group" args: { "group_name": "", - "active":" = True" + "active":" = Optional(True)" } OUTPUT:: + id : result: { - "id": "", - "msg": "created new users group " + "msg": "created new users group ``", + "users_group": { + "users_group_id" : "", + "group_name" : "", + "active": "", + "members" : [ + { + "user_id" : "", + "username" : "", + "firstname": "", + "lastname" : "", + "email" : "", + "emails": "", + "active" : "", + "admin" :  "", + "ldap_dn" : "", + "last_login": "", + }, + … + ] + }, } error: null @@ -433,16 +468,16 @@ INPUT:: api_key : "" method : "add_user_users_group" args: { - "group_name" : "", - "username" : "" + "usersgroupid" : "", + "userid" : "", } OUTPUT:: + id : result: { - "id": "", "success": True|False # depends on if member is in group - "msg": "added member to users group | + "msg": "added member `` to users group `` | User is already in that group" } error: null @@ -462,12 +497,13 @@ INPUT:: api_key : "" method : "remove_user_from_users_group" args: { - "group_name" : "", - "username" : "" + "usersgroupid" : "", + "userid" : "", } OUTPUT:: + id : result: { "success": True|False, # depends on if member is in group "msg": "removed member from users group | @@ -495,26 +531,32 @@ INPUT:: OUTPUT:: + id : result: None if repository does not exist or { - "id" : "", + "repo_id" : "", "repo_name" : "" - "type" : "", - "description" : "", + "repo_type" : "", "clone_uri" : "", "private": : "", - "created_on" : "", + "created_on" : "", + "description" : "", + "landing_rev": "", + "owner": "", + "fork_of": "", "members" : [ { "type": "user", - "id" : "", - "username" : "", - "firstname": "", - "lastname" : "", - "email" : "", - "active" : "", - "admin" :  "", - "ldap" : "", + "user_id" : "", + "username" : "", + "firstname": "", + "lastname" : "", + "email" : "", + "emails": "", + "active" : "", + "admin" :  "", + "ldap_dn" : "", + "last_login": "", "permission" : "repository.(read|write|admin)" }, … @@ -547,15 +589,19 @@ INPUT:: OUTPUT:: + id : result: [ { - "id" : "", + "repo_id" : "", "repo_name" : "" - "type" : "", - "description" : "", + "repo_type" : "", "clone_uri" : "", "private": : "", - "created_on" : "", + "created_on" : "", + "description" : "", + "landing_rev": "", + "owner": "", + "fork_of": "", }, … ] @@ -577,14 +623,15 @@ INPUT:: api_key : "" method : "get_repo_nodes" args: { - "repo_name" : "", + "repoid" : "" "revision" : "", "root_path" : "", - "ret_type" : "" = 'all' + "ret_type" : " = Optional('all')" } OUTPUT:: + id : result: [ { "name" : "" @@ -612,26 +659,30 @@ INPUT:: method : "create_repo" args: { "repo_name" : "", - "owner_name" : "", - "description" : " = ''", - "repo_type" : " = 'hg'", - "private" : " = False", - "clone_uri" : " = None", + "owner" : "", + "repo_type" : "", + "description" : " = Optional('')", + "private" : " = Optional(False)", + "clone_uri" : " = Optional(None)", + "landing_rev" : " = Optional('tip')", } OUTPUT:: + id : result: { - "id": "", - "msg": "Created new repository ", + "msg": "Created new repository ``", "repo": { - "id" : "", + "repo_id" : "", "repo_name" : "" - "type" : "", - "description" : "", + "repo_type" : "", "clone_uri" : "", "private": : "", - "created_on" : "", + "created_on" : "", + "description" : "", + "landing_rev": "", + "owner": "", + "fork_of": "", }, } error: null @@ -650,13 +701,15 @@ INPUT:: api_key : "" method : "delete_repo" args: { - "repo_name" : "", + "repoid" : "" } OUTPUT:: + id : result: { - "msg": "Deleted repository ", + "msg": "Deleted repository ``", + "success": true } error: null @@ -675,15 +728,17 @@ INPUT:: api_key : "" method : "grant_user_permission" args: { - "repo_name" : "", - "username" : "", + "repoid" : "" + "userid" : "" "perm" : "(repository.(none|read|write|admin))", } OUTPUT:: + id : result: { - "msg" : "Granted perm: for user: in repo: " + "msg" : "Granted perm: `` for user: `` in repo: ``", + "success": true } error: null @@ -701,14 +756,16 @@ INPUT:: api_key : "" method : "revoke_user_permission" args: { - "repo_name" : "", - "username" : "", + "repoid" : "" + "userid" : "" } OUTPUT:: + id : result: { - "msg" : "Revoked perm for user: in repo: " + "msg" : "Revoked perm for user: `` in repo: ``", + "success": true } error: null @@ -727,15 +784,17 @@ INPUT:: api_key : "" method : "grant_users_group_permission" args: { - "repo_name" : "", - "group_name" : "", + "repoid" : "" + "usersgroupid" : "" "perm" : "(repository.(none|read|write|admin))", } OUTPUT:: + id : result: { - "msg" : "Granted perm: for group: in repo: " + "msg" : "Granted perm: `` for group: `` in repo: ``", + "success": true } error: null @@ -752,13 +811,15 @@ INPUT:: api_key : "" method : "revoke_users_group_permission" args: { - "repo_name" : "", - "users_group" : "", + "repoid" : "" + "usersgroupid" : "" } OUTPUT:: + id : result: { - "msg" : "Revoked perm for group: in repo: " + "msg" : "Revoked perm for group: `` in repo: ``", + "success": true } error: null \ No newline at end of file diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -558,7 +558,7 @@ class UsersGroup(Base, BaseModel): users_group = self data = dict( - id=users_group.users_group_id, + users_group_id=users_group.users_group_id, group_name=users_group.users_group_name, active=users_group.users_group_active, )