2824 lines
82 KiB
ReStructuredText
2824 lines
82 KiB
ReStructuredText
.. _api:
|
|
|
|
API Documentation
|
|
=================
|
|
|
|
The |RCE| API uses a single scheme for calling all API methods. The API is
|
|
implemented with JSON protocol in both directions. To send API requests to
|
|
your instance of |RCE|, use the following URL format
|
|
``<your_server>/_admin``
|
|
|
|
.. note::
|
|
|
|
To use the API, you should configure the :file:`~/.rhoderc` file with
|
|
access details per instance. For more information, see
|
|
:ref:`config-rhoderc`.
|
|
|
|
|
|
API ACCESS FOR WEB VIEWS
|
|
------------------------
|
|
|
|
API access can also be turned on for each web view in |RCE| that is
|
|
decorated with a `@LoginRequired` decorator. To enable API access, change
|
|
the standard login decorator to `@LoginRequired(api_access=True)`.
|
|
|
|
From |RCM| version 1.7.0 you can configure a white list
|
|
of views that have API access enabled by default. To enable these,
|
|
edit the |RCM| configuration ``.ini`` file. The default location is:
|
|
|
|
* |RCM| Pre-2.2.7 :file:`root/rhodecode/data/production.ini`
|
|
* |RCM| 3.0 :file:`/home/{user}/.rccontrol/{instance-id}/rhodecode.ini`
|
|
|
|
To configure the white list, edit this section of the file. In this
|
|
configuration example, API access is granted to the patch/diff raw file and
|
|
archive.
|
|
|
|
.. code-block:: ini
|
|
|
|
## List of controllers (using glob syntax) that AUTH TOKENS could be used for access.
|
|
## Adding ?auth_token = <token> to the url authenticates this request as if it
|
|
## came from the the logged in user who own this authentication token.
|
|
##
|
|
## Syntax is <ControllerClass>:<function_pattern>.
|
|
## The list should be "," separated and on a single line.
|
|
##
|
|
api_access_controllers_whitelist = ChangesetController:changeset_patch,ChangesetController:changeset_raw,ilesController:raw,FilesController:archivefile,
|
|
|
|
After this change, a |RCE| view can be accessed without login by adding a
|
|
GET parameter ``?auth_token=<auth_token>`` to a url. For example to
|
|
access the raw diff.
|
|
|
|
.. code-block:: html
|
|
|
|
http://<server>/<repo>/changeset-diff/<sha>?auth_token=<auth_token>
|
|
|
|
By default this is only enabled on RSS/ATOM feed views. Exposing raw diffs is a
|
|
good way to integrate with 3rd party services like code review, or build farms
|
|
that could download archives.
|
|
|
|
API ACCESS
|
|
----------
|
|
|
|
All clients are required to send JSON-RPC spec JSON data.
|
|
|
|
.. code-block:: bash
|
|
|
|
{
|
|
"id:"<id>",
|
|
"auth_token":"<auth_token>",
|
|
"method":"<method_name>",
|
|
"args":{"<arg_key>":"<arg_val>"}
|
|
}
|
|
|
|
Example call for auto pulling from remote repositories using curl:
|
|
|
|
.. code-block:: bash
|
|
|
|
curl https://server.com/_admin/api -X POST -H 'content-type:text/plain' --data-binary '{"id":1,
|
|
"auth_token":"xe7cdb2v278e4evbdf5vs04v832v0efvcbcve4a3","method":"pull", "args":{"repo":"CPython"}}'
|
|
|
|
Provide those parameters:
|
|
- **id** A value of any type, which is used to match the response with the
|
|
request that it is replying to.
|
|
- **auth_token** 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::
|
|
|
|
To get your |authtoken|, from the |RCE| interface,
|
|
go to:
|
|
:menuselection:`username --> My account --> Auth tokens`
|
|
|
|
For security reasons you should always create a dedicated |authtoken| for
|
|
API use only.
|
|
|
|
|
|
The |RCE| API will always return a JSON-RPC response:
|
|
|
|
.. code-block:: bash
|
|
|
|
{
|
|
"id": <id>, # matching id sent by request
|
|
"result": "<result>"|null, # JSON formatted result, null if any errors
|
|
"error": "null"|<error_message> # JSON formatted error (if any)
|
|
}
|
|
|
|
All responses from API will be with `HTTP/1.0 200 OK` status code.
|
|
If there is an error when calling the API, the *error* key will contain a
|
|
failure description and the *result* will be `null`.
|
|
|
|
API CLIENT
|
|
----------
|
|
|
|
To install the |RCE| API, see :ref:`install-tools`. To configure the API per
|
|
instance, see the :ref:`rc-tools` section as you need to configure a
|
|
:file:`~/.rhoderc` file with your |authtokens|.
|
|
|
|
Once you have set up your instance API access, use the following examples to
|
|
get started.
|
|
|
|
.. code-block:: bash
|
|
|
|
# Getting the 'rhodecode' repository
|
|
# from a RhodeCode Enterprise instance
|
|
rhodecode-api --instance-name=enterprise-1 get_repo repoid:rhodecode
|
|
|
|
Calling method get_repo => http://127.0.0.1:5000
|
|
Server response
|
|
{
|
|
<json data>
|
|
}
|
|
|
|
# Creating a new mercurial repository called 'brand-new'
|
|
# with a description 'Repo-description'
|
|
rhodecode-api --instance-name=enterprise-1 create_repo repo_name:brand-new repo_type:hg description:Repo-description
|
|
{
|
|
"error": null,
|
|
"id": 1110,
|
|
"result": {
|
|
"msg": "Created new repository `brand-new`",
|
|
"success": true,
|
|
"task": null
|
|
}
|
|
}
|
|
|
|
A broken example, what not to do.
|
|
|
|
.. code-block:: bash
|
|
|
|
# A call missing the required arguments
|
|
# and not specifying the instance
|
|
rhodecode-api get_repo
|
|
|
|
Calling method get_repo => http://127.0.0.1:5000
|
|
Server response
|
|
"Missing non optional `repoid` arg in JSON DATA"
|
|
|
|
You can specify pure JSON using the ``--format`` parameter.
|
|
|
|
.. code-block:: bash
|
|
|
|
rhodecode-api --format=json get_repo repoid:rhodecode
|
|
|
|
In such case only output that this function shows is pure JSON, we can use that
|
|
and pipe output to some json formatter.
|
|
|
|
If output is in pure JSON format, you can pipe output to a JSON formatter.
|
|
|
|
.. code-block:: bash
|
|
|
|
rhodecode-api --instance-name=enterprise-1 --format=json get_repo repoid:rhodecode | python -m json.tool
|
|
|
|
API METHODS
|
|
-----------
|
|
|
|
Each method by default required following arguments.
|
|
|
|
.. code-block:: bash
|
|
|
|
id : "<id_for_response>"
|
|
auth_token : "<auth_token>"
|
|
method : "<method name>"
|
|
args : {}
|
|
|
|
Use each **param** from docs and put it in args, Optional parameters
|
|
are not required in args.
|
|
|
|
.. code-block:: bash
|
|
|
|
args: {"repoid": "rhodecode"}
|
|
|
|
.. Note: From this point on things are generated by the script in
|
|
`scripts/fabfile.py`. To change things below, update the docstrings in the
|
|
ApiController.
|
|
|
|
.. --- API DEFS MARKER ---
|
|
|
|
pull
|
|
----
|
|
|
|
.. py:function:: pull(apiuser, repoid)
|
|
|
|
Triggers a pull on the given repository from a remote location. You
|
|
can use this to keep remote repositories up-to-date.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
rights to the specified repository. For more information,
|
|
see :ref:`config-token-ref`.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The repository name or repository ID.
|
|
:type repoid: str or int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "Pulled from `<repository name>`"
|
|
"repository": "<repository name>"
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"Unable to pull changes from `<reponame>`"
|
|
}
|
|
|
|
|
|
strip
|
|
-----
|
|
|
|
.. py:function:: strip(apiuser, repoid, revision, branch)
|
|
|
|
Strips the given revision from the specified repository.
|
|
|
|
* This will remove the revision and all of its decendants.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param revision: The revision you wish to strip.
|
|
:type revision: str
|
|
:param branch: The branch from which to strip the revision.
|
|
:type branch: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "'Stripped commit <commit_hash> from repo `<repository name>`'"
|
|
"repository": "<repository name>"
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"Unable to strip commit <commit_hash> from repo `<repository name>`"
|
|
}
|
|
|
|
|
|
rescan_repos
|
|
------------
|
|
|
|
.. py:function:: rescan_repos(apiuser, remove_obsolete=<Optional:False>)
|
|
|
|
Triggers a rescan of the specified repositories.
|
|
|
|
* If the ``remove_obsolete`` option is set, it also deletes repositories
|
|
that are found in the database but not on the file system, so called
|
|
"clean zombies".
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param remove_obsolete: Deletes repositories from the database that
|
|
are not found on the filesystem.
|
|
:type remove_obsolete: Optional(``True`` | ``False``)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
'added': [<added repository name>,...]
|
|
'removed': [<removed repository name>,...]
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
'Error occurred during rescan repositories action'
|
|
}
|
|
|
|
|
|
invalidate_cache
|
|
----------------
|
|
|
|
.. py:function:: invalidate_cache(apiuser, repoid, delete_keys=<Optional:False>)
|
|
|
|
Invalidates the cache for the specified repository.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Sets the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param delete_keys: This deletes the invalidated keys instead of
|
|
just flagging them.
|
|
:type delete_keys: Optional(``True`` | ``False``)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
'msg': Cache for repository `<repository name>` was invalidated,
|
|
'repository': <repository name>
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
'Error occurred during cache invalidation action'
|
|
}
|
|
|
|
|
|
lock
|
|
----
|
|
|
|
.. py:function:: lock(apiuser, repoid, locked=<Optional:None>, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Sets the lock state of the specified |repo| by the given user.
|
|
From more information, see :ref:`repo-locking`.
|
|
|
|
* If the ``userid`` option is not set, the repository is locked to the
|
|
user who called the method.
|
|
* If the ``locked`` parameter is not set, the current lock state of the
|
|
repository is displayed.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Sets the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param locked: Sets the lock state.
|
|
:type locked: Optional(``True`` | ``False``)
|
|
:param userid: Set the repository lock to this user.
|
|
:type userid: Optional(str or int)
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
'repo': '<reponame>',
|
|
'locked': <bool: lock state>,
|
|
'locked_since': <int: lock timestamp>,
|
|
'locked_by': <username of person who made the lock>,
|
|
'lock_reason': <str: reason for locking>,
|
|
'lock_state_changed': <bool: True if lock state has been changed in this request>,
|
|
'msg': 'Repo `<reponame>` locked by `<username>` on <timestamp>.'
|
|
or
|
|
'msg': 'Repo `<repository name>` not locked.'
|
|
or
|
|
'msg': 'User `<user name>` set lock state for repo `<repository name>` to `<new lock state>`'
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
'Error occurred locking repository `<reponame>`
|
|
}
|
|
|
|
|
|
get_locks
|
|
---------
|
|
|
|
.. py:function:: get_locks(apiuser, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Displays all repositories locked by the specified user.
|
|
|
|
* If this command is run by a non-admin user, it returns
|
|
a list of |repos| locked by that user.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param userid: Sets the userid whose list of locked |repos| will be
|
|
displayed.
|
|
:type userid: Optional(str or int)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
[repo_object, repo_object,...]
|
|
}
|
|
error : null
|
|
|
|
|
|
get_ip
|
|
------
|
|
|
|
.. py:function:: get_ip(apiuser, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Displays the IP Address as seen from the |RCE| server.
|
|
|
|
* This command displays the IP Address, as well as all the defined IP
|
|
addresses for the specified user. If the ``userid`` is not set, the
|
|
data returned is for the user calling the method.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param userid: Sets the userid for which associated IP Address data
|
|
is returned.
|
|
:type userid: Optional(str or int)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"server_ip_addr": "<ip_from_clien>",
|
|
"user_ips": [
|
|
{
|
|
"ip_addr": "<ip_with_mask>",
|
|
"ip_range": ["<start_ip>", "<end_ip>"],
|
|
},
|
|
...
|
|
]
|
|
}
|
|
|
|
|
|
show_ip
|
|
-------
|
|
|
|
.. py:function:: show_ip(apiuser, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Displays the IP Address as seen from the |RCE| server.
|
|
|
|
* This command displays the IP Address, as well as all the defined IP
|
|
addresses for the specified user. If the ``userid`` is not set, the
|
|
data returned is for the user calling the method.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param userid: Sets the userid for which associated IP Address data
|
|
is returned.
|
|
:type userid: Optional(str or int)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"server_ip_addr": "<ip_from_clien>",
|
|
"user_ips": [
|
|
{
|
|
"ip_addr": "<ip_with_mask>",
|
|
"ip_range": ["<start_ip>", "<end_ip>"],
|
|
},
|
|
...
|
|
]
|
|
}
|
|
|
|
|
|
get_license_info
|
|
----------------
|
|
|
|
.. py:function:: get_license_info(apiuser)
|
|
|
|
Returns the |RCE| license information.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
'rhodecode_version': <rhodecode version>,
|
|
'token': <license token>,
|
|
'issued_to': <license owner>,
|
|
'issued_on': <license issue date>,
|
|
'expires_on': <license expiration date>,
|
|
'type': <license type>,
|
|
'users_limit': <license users limit>,
|
|
'key': <license key>
|
|
}
|
|
error : null
|
|
|
|
|
|
set_license_key
|
|
---------------
|
|
|
|
.. py:function:: set_license_key(apiuser, key)
|
|
|
|
Sets the |RCE| license key.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param key: This is the license key to be set.
|
|
:type key: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "updated license information",
|
|
"key": <key>
|
|
}
|
|
error: null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"license key is not valid"
|
|
or
|
|
"trial licenses cannot be uploaded"
|
|
or
|
|
"error occurred while updating license"
|
|
}
|
|
|
|
|
|
get_server_info
|
|
---------------
|
|
|
|
.. py:function:: get_server_info(apiuser)
|
|
|
|
Returns the |RCE| server information.
|
|
|
|
This includes the running version of |RCE| and all installed
|
|
packages. This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
'modules': [<module name>,...]
|
|
'py_version': <python version>,
|
|
'platform': <platform type>,
|
|
'rhodecode_version': <rhodecode version>
|
|
}
|
|
error : null
|
|
|
|
|
|
get_user
|
|
--------
|
|
|
|
.. py:function:: get_user(apiuser, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Returns the information associated with a username or userid.
|
|
|
|
* If the ``userid`` is not set, this command returns the information
|
|
for the ``userid`` calling the method.
|
|
|
|
.. note::
|
|
|
|
Normal users may only run this command against their ``userid``. For
|
|
full privileges you must run this command using an |authtoken| with
|
|
admin rights.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param userid: Sets the userid for which data will be returned.
|
|
:type userid: Optional(str or int)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
{
|
|
"error": null,
|
|
"id": <id>,
|
|
"result": {
|
|
"active": true,
|
|
"admin": false,
|
|
"api_key": "api-key",
|
|
"api_keys": [ list of keys ],
|
|
"email": "user@example.com",
|
|
"emails": [
|
|
"user@example.com"
|
|
],
|
|
"extern_name": "rhodecode",
|
|
"extern_type": "rhodecode",
|
|
"firstname": "username",
|
|
"ip_addresses": [],
|
|
"language": null,
|
|
"last_login": "Timestamp",
|
|
"lastname": "surnae",
|
|
"permissions": {
|
|
"global": [
|
|
"hg.inherit_default_perms.true",
|
|
"usergroup.read",
|
|
"hg.repogroup.create.false",
|
|
"hg.create.none",
|
|
"hg.extern_activate.manual",
|
|
"hg.create.write_on_repogroup.false",
|
|
"hg.usergroup.create.false",
|
|
"group.none",
|
|
"repository.none",
|
|
"hg.register.none",
|
|
"hg.fork.repository"
|
|
],
|
|
"repositories": { "username/example": "repository.write"},
|
|
"repositories_groups": { "user-group/repo": "group.none" },
|
|
"user_groups": { "user_group_name": "usergroup.read" }
|
|
},
|
|
"user_id": 32,
|
|
"username": "username"
|
|
}
|
|
}
|
|
|
|
|
|
get_users
|
|
---------
|
|
|
|
.. py:function:: get_users(apiuser)
|
|
|
|
Lists all users in the |RCE| user database.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: [<user_object>, ...]
|
|
error: null
|
|
|
|
|
|
create_user
|
|
-----------
|
|
|
|
.. py:function:: create_user(apiuser, username, email, password=<Optional:''>, firstname=<Optional:''>, lastname=<Optional:''>, active=<Optional:True>, admin=<Optional:False>, extern_name=<Optional:'rhodecode'>, extern_type=<Optional:'rhodecode'>, force_password_change=<Optional:False>)
|
|
|
|
Creates a new user and returns the new user object.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param username: Set the new username.
|
|
:type username: str or int
|
|
:param email: Set the user email address.
|
|
:type email: str
|
|
:param password: Set the new user password.
|
|
:type password: Optional(str)
|
|
:param firstname: Set the new user firstname.
|
|
:type firstname: Optional(str)
|
|
:param lastname: Set the new user surname.
|
|
:type lastname: Optional(str)
|
|
:param active: Set the user as active.
|
|
:type active: Optional(``True`` | ``False``)
|
|
:param admin: Give the new user admin rights.
|
|
:type admin: Optional(``True`` | ``False``)
|
|
:param extern_name: Set the authentication plugin name.
|
|
Using LDAP this is filled with LDAP UID.
|
|
:type extern_name: Optional(str)
|
|
:param extern_type: Set the new user authentication plugin.
|
|
:type extern_type: Optional(str)
|
|
:param force_password_change: Force the new user to change password
|
|
on next login.
|
|
:type force_password_change: Optional(``True`` | ``False``)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "created new user `<username>`",
|
|
"user": <user_obj>
|
|
}
|
|
error: null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"user `<username>` already exist"
|
|
or
|
|
"email `<email>` already exist"
|
|
or
|
|
"failed to create user `<username>`"
|
|
}
|
|
|
|
|
|
update_user
|
|
-----------
|
|
|
|
.. py:function:: update_user(apiuser, userid, username=<Optional:None>, email=<Optional:None>, password=<Optional:None>, firstname=<Optional:None>, lastname=<Optional:None>, active=<Optional:None>, admin=<Optional:None>, extern_type=<Optional:None>, extern_name=<Optional:None>)
|
|
|
|
Updates the details for the specified user, if that user exists.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param userid: Set the ``userid`` to update.
|
|
:type userid: str or int
|
|
:param username: Set the new username.
|
|
:type username: str or int
|
|
:param email: Set the new email.
|
|
:type email: str
|
|
:param password: Set the new password.
|
|
:type password: Optional(str)
|
|
:param firstname: Set the new first name.
|
|
:type firstname: Optional(str)
|
|
:param lastname: Set the new surname.
|
|
:type lastname: Optional(str)
|
|
:param active: Set the new user as active.
|
|
:type active: Optional(``True`` | ``False``)
|
|
:param admin: Give the user admin rights.
|
|
:type admin: Optional(``True`` | ``False``)
|
|
:param extern_name: Set the authentication plugin user name.
|
|
Using LDAP this is filled with LDAP UID.
|
|
:type extern_name: Optional(str)
|
|
:param extern_type: Set the authentication plugin type.
|
|
:type extern_type: Optional(str)
|
|
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "updated user ID:<userid> <username>",
|
|
"user": <user_object>,
|
|
}
|
|
error: null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to update user `<username>`"
|
|
}
|
|
|
|
|
|
delete_user
|
|
-----------
|
|
|
|
.. py:function:: delete_user(apiuser, userid)
|
|
|
|
Deletes the specified user from the |RCE| user database.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
.. important::
|
|
|
|
Ensure all open pull requests and open code review
|
|
requests to this user are close.
|
|
|
|
Also ensure all repositories, or repository groups owned by this
|
|
user are reassigned before deletion.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param userid: Set the user to delete.
|
|
:type userid: str or int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "deleted user ID:<userid> <username>",
|
|
"user": null
|
|
}
|
|
error: null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to delete user ID:<userid> <username>"
|
|
}
|
|
|
|
|
|
get_user_group
|
|
--------------
|
|
|
|
.. py:function:: get_user_group(apiuser, usergroupid)
|
|
|
|
Returns the data of an existing user group.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param usergroupid: Set the user group from which to return data.
|
|
:type usergroupid: str or int
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
{
|
|
"error": null,
|
|
"id": <id>,
|
|
"result": {
|
|
"active": true,
|
|
"group_description": "group description",
|
|
"group_name": "group name",
|
|
"members": [
|
|
{
|
|
"name": "owner-name",
|
|
"origin": "owner",
|
|
"permission": "usergroup.admin",
|
|
"type": "user"
|
|
},
|
|
{
|
|
{
|
|
"name": "user name",
|
|
"origin": "permission",
|
|
"permission": "usergroup.admin",
|
|
"type": "user"
|
|
},
|
|
{
|
|
"name": "user group name",
|
|
"origin": "permission",
|
|
"permission": "usergroup.write",
|
|
"type": "user_group"
|
|
}
|
|
],
|
|
"owner": "owner name",
|
|
"users": [],
|
|
"users_group_id": 2
|
|
}
|
|
}
|
|
|
|
|
|
get_user_groups
|
|
---------------
|
|
|
|
.. py:function:: get_user_groups(apiuser)
|
|
|
|
Lists all the existing user groups within RhodeCode.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : [<user_group_obj>,...]
|
|
error : null
|
|
|
|
|
|
create_user_group
|
|
-----------------
|
|
|
|
.. py:function:: create_user_group(apiuser, group_name, description=<Optional:''>, owner=<Optional:<OptionalAttr:apiuser>>, active=<Optional:True>)
|
|
|
|
Creates a new user group.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param group_name: Set the name of the new user group.
|
|
:type group_name: str
|
|
:param description: Give a description of the new user group.
|
|
:type description: str
|
|
:param owner: Set the owner of the new user group.
|
|
If not set, the owner is the |authtoken| user.
|
|
:type owner: Optional(str or int)
|
|
:param active: Set this group as active.
|
|
:type active: Optional(``True`` | ``False``)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg": "created new user group `<groupname>`",
|
|
"user_group": <user_group_object>
|
|
}
|
|
error: null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"user group `<group name>` already exist"
|
|
or
|
|
"failed to create group `<group name>`"
|
|
}
|
|
|
|
|
|
update_user_group
|
|
-----------------
|
|
|
|
.. py:function:: update_user_group(apiuser, usergroupid, group_name=<Optional:''>, description=<Optional:''>, owner=<Optional:None>, active=<Optional:True>)
|
|
|
|
Updates the specified `user group` with the details provided.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param usergroupid: Set the id of the `user group` to update.
|
|
:type usergroupid: str or int
|
|
:param group_name: Set the new name the `user group`
|
|
:type group_name: str
|
|
:param description: Give a description for the `user group`
|
|
:type description: str
|
|
:param owner: Set the owner of the `user group`.
|
|
:type owner: Optional(str or int)
|
|
:param active: Set the group as active.
|
|
:type active: Optional(``True`` | ``False``)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": 'updated user group ID:<user group id> <user group name>',
|
|
"user_group": <user_group_object>
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to update user group `<user group name>`"
|
|
}
|
|
|
|
|
|
delete_user_group
|
|
-----------------
|
|
|
|
.. py:function:: delete_user_group(apiuser, usergroupid)
|
|
|
|
Deletes the specified `user group`.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified repository.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: filled automatically from apikey
|
|
:type apiuser: AuthUser
|
|
:param usergroupid:
|
|
:type usergroupid: int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "deleted user group ID:<user_group_id> <user_group_name>"
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to delete user group ID:<user_group_id> <user_group_name>"
|
|
or
|
|
"RepoGroup assigned to <repo_groups_list>"
|
|
}
|
|
|
|
|
|
add_user_to_user_group
|
|
----------------------
|
|
|
|
.. py:function:: add_user_to_user_group(apiuser, usergroupid, userid)
|
|
|
|
Adds a user to a `user group`. If the user already exists in the group
|
|
this command will return false.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified user group.
|
|
|
|
This command takes the following options:
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param usergroupid: Set the name of the `user group` to which a
|
|
user will be added.
|
|
:type usergroupid: int
|
|
:param userid: Set the `user_id` of the user to add to the group.
|
|
:type userid: int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"success": True|False # depends on if member is in group
|
|
"msg": "added member `<username>` to user group `<groupname>` |
|
|
User is already in that group"
|
|
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to add member to user group `<user_group_name>`"
|
|
}
|
|
|
|
|
|
remove_user_from_user_group
|
|
---------------------------
|
|
|
|
.. py:function:: remove_user_from_user_group(apiuser, usergroupid, userid)
|
|
|
|
Removes a user from a user group.
|
|
|
|
* If the specified user is not in the group, this command will return
|
|
`false`.
|
|
|
|
This command can only be run using an |authtoken| with admin rights to
|
|
the specified user group.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param usergroupid: Sets the user group name.
|
|
:type usergroupid: str or int
|
|
:param userid: The user you wish to remove from |RCE|.
|
|
:type userid: str or int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"success": True|False, # depends on if member is in group
|
|
"msg": "removed member <username> from user group <groupname> |
|
|
User wasn't in group"
|
|
}
|
|
error: null
|
|
|
|
|
|
grant_user_permission_to_user_group
|
|
-----------------------------------
|
|
|
|
.. py:function:: grant_user_permission_to_user_group(apiuser, usergroupid, userid, perm)
|
|
|
|
Set permissions for a user in a user group.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param usergroupid: Set the user group to edit permissions on.
|
|
:type usergroupid: str or int
|
|
:param userid: Set the user from whom you wish to set permissions.
|
|
:type userid: str
|
|
:param perm: (usergroup.(none|read|write|admin))
|
|
:type perm: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "Granted perm: `<perm_name>` for user: `<username>` in user group: `<user_group_name>`",
|
|
"success": true
|
|
}
|
|
error : null
|
|
|
|
|
|
revoke_user_permission_from_user_group
|
|
--------------------------------------
|
|
|
|
.. py:function:: revoke_user_permission_from_user_group(apiuser, usergroupid, userid)
|
|
|
|
Revoke a users permissions in a user group.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param usergroupid: Set the user group from which to revoke the user
|
|
permissions.
|
|
:type: usergroupid: str or int
|
|
:param userid: Set the userid of the user whose permissions will be
|
|
revoked.
|
|
:type userid: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "Revoked perm for user: `<username>` in user group: `<user_group_name>`",
|
|
"success": true
|
|
}
|
|
error : null
|
|
|
|
|
|
grant_user_group_permission_to_user_group
|
|
-----------------------------------------
|
|
|
|
.. py:function:: grant_user_group_permission_to_user_group(apiuser, usergroupid, sourceusergroupid, perm)
|
|
|
|
Give one user group permissions to another user group.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param usergroupid: Set the user group on which to edit permissions.
|
|
:type usergroupid: str or int
|
|
:param sourceusergroupid: Set the source user group to which
|
|
access/permissions will be granted.
|
|
:type sourceusergroupid: str or int
|
|
:param perm: (usergroup.(none|read|write|admin))
|
|
:type perm: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "Granted perm: `<perm_name>` for user group: `<source_user_group_name>` in user group: `<user_group_name>`",
|
|
"success": true
|
|
}
|
|
error : null
|
|
|
|
|
|
revoke_user_group_permission_from_user_group
|
|
--------------------------------------------
|
|
|
|
.. py:function:: revoke_user_group_permission_from_user_group(apiuser, usergroupid, sourceusergroupid)
|
|
|
|
Revoke the permissions that one user group has to another.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param usergroupid: Set the user group on which to edit permissions.
|
|
:type usergroupid: str or int
|
|
:param sourceusergroupid: Set the user group from which permissions
|
|
are revoked.
|
|
:type sourceusergroupid: str or int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "Revoked perm for user group: `<user_group_name>` in user group: `<target_user_group_name>`",
|
|
"success": true
|
|
}
|
|
error : null
|
|
|
|
|
|
get_pull_request
|
|
----------------
|
|
|
|
.. py:function:: get_pull_request(apiuser, repoid, pullrequestid)
|
|
|
|
Get a pull request based on the given ID.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Repository name or repository ID from where the pull
|
|
request was opened.
|
|
:type repoid: str or int
|
|
:param pullrequestid: ID of the requested pull request.
|
|
:type pullrequestid: int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
"id": <id_given_in_input>,
|
|
"result":
|
|
{
|
|
"pull_request_id": "<pull_request_id>",
|
|
"url": "<url>",
|
|
"title": "<title>",
|
|
"description": "<description>",
|
|
"status" : "<status>",
|
|
"created_on": "<date_time_created>",
|
|
"updated_on": "<date_time_updated>",
|
|
"commit_ids": [
|
|
...
|
|
"<commit_id>",
|
|
"<commit_id>",
|
|
...
|
|
],
|
|
"review_status": "<review_status>",
|
|
"mergeable": {
|
|
"status": "<bool>",
|
|
"message": "<message>",
|
|
},
|
|
"source": {
|
|
"clone_url": "<clone_url>",
|
|
"repository": "<repository_name>",
|
|
"reference":
|
|
{
|
|
"name": "<name>",
|
|
"type": "<type>",
|
|
"commit_id": "<commit_id>",
|
|
}
|
|
},
|
|
"target": {
|
|
"clone_url": "<clone_url>",
|
|
"repository": "<repository_name>",
|
|
"reference":
|
|
{
|
|
"name": "<name>",
|
|
"type": "<type>",
|
|
"commit_id": "<commit_id>",
|
|
}
|
|
},
|
|
"author": <user_obj>,
|
|
"reviewers": [
|
|
...
|
|
{
|
|
"user": "<user_obj>",
|
|
"review_status": "<review_status>",
|
|
}
|
|
...
|
|
]
|
|
},
|
|
"error": null
|
|
|
|
|
|
get_pull_requests
|
|
-----------------
|
|
|
|
.. py:function:: get_pull_requests(apiuser, repoid, status=<Optional:'new'>)
|
|
|
|
Get all pull requests from the repository specified in `repoid`.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param status: Only return pull requests with the specified status.
|
|
Valid options are.
|
|
* ``new`` (default)
|
|
* ``open``
|
|
* ``closed``
|
|
:type status: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
"id": <id_given_in_input>,
|
|
"result":
|
|
[
|
|
...
|
|
{
|
|
"pull_request_id": "<pull_request_id>",
|
|
"url": "<url>",
|
|
"title" : "<title>",
|
|
"description": "<description>",
|
|
"status": "<status>",
|
|
"created_on": "<date_time_created>",
|
|
"updated_on": "<date_time_updated>",
|
|
"commit_ids": [
|
|
...
|
|
"<commit_id>",
|
|
"<commit_id>",
|
|
...
|
|
],
|
|
"review_status": "<review_status>",
|
|
"mergeable": {
|
|
"status": "<bool>",
|
|
"message: "<message>",
|
|
},
|
|
"source": {
|
|
"clone_url": "<clone_url>",
|
|
"reference":
|
|
{
|
|
"name": "<name>",
|
|
"type": "<type>",
|
|
"commit_id": "<commit_id>",
|
|
}
|
|
},
|
|
"target": {
|
|
"clone_url": "<clone_url>",
|
|
"reference":
|
|
{
|
|
"name": "<name>",
|
|
"type": "<type>",
|
|
"commit_id": "<commit_id>",
|
|
}
|
|
},
|
|
"author": <user_obj>,
|
|
"reviewers": [
|
|
...
|
|
{
|
|
"user": "<user_obj>",
|
|
"review_status": "<review_status>",
|
|
}
|
|
...
|
|
]
|
|
}
|
|
...
|
|
],
|
|
"error": null
|
|
|
|
|
|
merge_pull_request
|
|
------------------
|
|
|
|
.. py:function:: merge_pull_request(apiuser, repoid, pullrequestid, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Merge the pull request specified by `pullrequestid` into its target
|
|
repository.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The Repository name or repository ID of the
|
|
target repository to which the |pr| is to be merged.
|
|
:type repoid: str or int
|
|
:param pullrequestid: ID of the pull request which shall be merged.
|
|
:type pullrequestid: int
|
|
:param userid: Merge the pull request as this user.
|
|
:type userid: Optional(str or int)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
"id": <id_given_in_input>,
|
|
"result":
|
|
{
|
|
"executed": "<bool>",
|
|
"failure_reason": "<int>",
|
|
"merge_commit_id": "<merge_commit_id>",
|
|
"possible": "<bool>"
|
|
},
|
|
"error": null
|
|
|
|
|
|
close_pull_request
|
|
------------------
|
|
|
|
.. py:function:: close_pull_request(apiuser, repoid, pullrequestid, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Close the pull request specified by `pullrequestid`.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Repository name or repository ID to which the pull
|
|
request belongs.
|
|
:type repoid: str or int
|
|
:param pullrequestid: ID of the pull request to be closed.
|
|
:type pullrequestid: int
|
|
:param userid: Close the pull request as this user.
|
|
:type userid: Optional(str or int)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
"id": <id_given_in_input>,
|
|
"result":
|
|
{
|
|
"pull_request_id": "<int>",
|
|
"closed": "<bool>"
|
|
},
|
|
"error": null
|
|
|
|
|
|
comment_pull_request
|
|
--------------------
|
|
|
|
.. py:function:: comment_pull_request(apiuser, repoid, pullrequestid, message=<Optional:None>, status=<Optional:None>, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Comment on the pull request specified with the `pullrequestid`,
|
|
in the |repo| specified by the `repoid`, and optionally change the
|
|
review status.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param pullrequestid: The pull request ID.
|
|
:type pullrequestid: int
|
|
:param message: The text content of the comment.
|
|
:type message: str
|
|
:param status: (**Optional**) Set the approval status of the pull
|
|
request. Valid options are:
|
|
* not_reviewed
|
|
* approved
|
|
* rejected
|
|
* under_review
|
|
:type status: str
|
|
:param userid: Comment on the pull request as this user
|
|
:type userid: Optional(str or int)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result :
|
|
{
|
|
"pull_request_id": "<Integer>",
|
|
"comment_id": "<Integer>"
|
|
}
|
|
error : null
|
|
|
|
|
|
create_pull_request
|
|
-------------------
|
|
|
|
.. py:function:: create_pull_request(apiuser, source_repo, target_repo, source_ref, target_ref, title, description=<Optional:''>, reviewers=<Optional:None>)
|
|
|
|
Creates a new pull request.
|
|
|
|
Accepts refs in the following formats:
|
|
|
|
* branch:<branch_name>:<sha>
|
|
* branch:<branch_name>
|
|
* bookmark:<bookmark_name>:<sha> (Mercurial only)
|
|
* bookmark:<bookmark_name> (Mercurial only)
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param source_repo: Set the source repository name.
|
|
:type source_repo: str
|
|
:param target_repo: Set the target repository name.
|
|
:type target_repo: str
|
|
:param source_ref: Set the source ref name.
|
|
:type source_ref: str
|
|
:param target_ref: Set the target ref name.
|
|
:type target_ref: str
|
|
:param title: Set the pull request title.
|
|
:type title: str
|
|
:param description: Set the pull request description.
|
|
:type description: Optional(str)
|
|
:param reviewers: Set the new pull request reviewers list.
|
|
:type reviewers: Optional(list)
|
|
|
|
|
|
update_pull_request
|
|
-------------------
|
|
|
|
.. py:function:: update_pull_request(apiuser, repoid, pullrequestid, title=<Optional:''>, description=<Optional:''>, reviewers=<Optional:None>, update_commits=<Optional:None>, close_pull_request=<Optional:None>)
|
|
|
|
Updates a pull request.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param pullrequestid: The pull request ID.
|
|
:type pullrequestid: int
|
|
:param title: Set the pull request title.
|
|
:type title: str
|
|
:param description: Update pull request description.
|
|
:type description: Optional(str)
|
|
:param reviewers: Update pull request reviewers list with new value.
|
|
:type reviewers: Optional(list)
|
|
:param update_commits: Trigger update of commits for this pull request
|
|
:type: update_commits: Optional(bool)
|
|
:param close_pull_request: Close this pull request with rejected state
|
|
:type: close_pull_request: Optional(bool)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result :
|
|
{
|
|
"msg": "Updated pull request `63`",
|
|
"pull_request": <pull_request_object>,
|
|
"updated_reviewers": {
|
|
"added": [
|
|
"username"
|
|
],
|
|
"removed": []
|
|
},
|
|
"updated_commits": {
|
|
"added": [
|
|
"<sha1_hash>"
|
|
],
|
|
"common": [
|
|
"<sha1_hash>",
|
|
"<sha1_hash>",
|
|
],
|
|
"removed": []
|
|
}
|
|
}
|
|
error : null
|
|
|
|
|
|
get_repo
|
|
--------
|
|
|
|
.. py:function:: get_repo(apiuser, repoid, cache=<Optional:True>)
|
|
|
|
Gets an existing repository by its name or repository_id.
|
|
|
|
The members section so the output returns users groups or users
|
|
associated with that repository.
|
|
|
|
This command can only be run using an |authtoken| with admin rights,
|
|
or users with at least read rights to the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The repository name or repository id.
|
|
:type repoid: str or int
|
|
:param cache: use the cached value for last changeset
|
|
:type: cache: Optional(bool)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
{
|
|
"error": null,
|
|
"id": <repo_id>,
|
|
"result": {
|
|
"clone_uri": null,
|
|
"created_on": "timestamp",
|
|
"description": "repo description",
|
|
"enable_downloads": false,
|
|
"enable_locking": false,
|
|
"enable_statistics": false,
|
|
"followers": [
|
|
{
|
|
"active": true,
|
|
"admin": false,
|
|
"api_key": "****************************************",
|
|
"api_keys": [
|
|
"****************************************"
|
|
],
|
|
"email": "user@example.com",
|
|
"emails": [
|
|
"user@example.com"
|
|
],
|
|
"extern_name": "rhodecode",
|
|
"extern_type": "rhodecode",
|
|
"firstname": "username",
|
|
"ip_addresses": [],
|
|
"language": null,
|
|
"last_login": "2015-09-16T17:16:35.854",
|
|
"lastname": "surname",
|
|
"user_id": <user_id>,
|
|
"username": "name"
|
|
}
|
|
],
|
|
"fork_of": "parent-repo",
|
|
"landing_rev": [
|
|
"rev",
|
|
"tip"
|
|
],
|
|
"last_changeset": {
|
|
"author": "User <user@example.com>",
|
|
"branch": "default",
|
|
"date": "timestamp",
|
|
"message": "last commit message",
|
|
"parents": [
|
|
{
|
|
"raw_id": "commit-id"
|
|
}
|
|
],
|
|
"raw_id": "commit-id",
|
|
"revision": <revision number>,
|
|
"short_id": "short id"
|
|
},
|
|
"lock_reason": null,
|
|
"locked_by": null,
|
|
"locked_date": null,
|
|
"members": [
|
|
{
|
|
"name": "super-admin-name",
|
|
"origin": "super-admin",
|
|
"permission": "repository.admin",
|
|
"type": "user"
|
|
},
|
|
{
|
|
"name": "owner-name",
|
|
"origin": "owner",
|
|
"permission": "repository.admin",
|
|
"type": "user"
|
|
},
|
|
{
|
|
"name": "user-group-name",
|
|
"origin": "permission",
|
|
"permission": "repository.write",
|
|
"type": "user_group"
|
|
}
|
|
],
|
|
"owner": "owner-name",
|
|
"permissions": [
|
|
{
|
|
"name": "super-admin-name",
|
|
"origin": "super-admin",
|
|
"permission": "repository.admin",
|
|
"type": "user"
|
|
},
|
|
{
|
|
"name": "owner-name",
|
|
"origin": "owner",
|
|
"permission": "repository.admin",
|
|
"type": "user"
|
|
},
|
|
{
|
|
"name": "user-group-name",
|
|
"origin": "permission",
|
|
"permission": "repository.write",
|
|
"type": "user_group"
|
|
}
|
|
],
|
|
"private": true,
|
|
"repo_id": 676,
|
|
"repo_name": "user-group/repo-name",
|
|
"repo_type": "hg"
|
|
}
|
|
}
|
|
|
|
|
|
get_repos
|
|
---------
|
|
|
|
.. py:function:: get_repos(apiuser)
|
|
|
|
Lists all existing repositories.
|
|
|
|
This command can only be run using an |authtoken| with admin rights,
|
|
or users with at least read rights to |repos|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: [
|
|
{
|
|
"repo_id" : "<repo_id>",
|
|
"repo_name" : "<reponame>"
|
|
"repo_type" : "<repo_type>",
|
|
"clone_uri" : "<clone_uri>",
|
|
"private": : "<bool>",
|
|
"created_on" : "<datetimecreated>",
|
|
"description" : "<description>",
|
|
"landing_rev": "<landing_rev>",
|
|
"owner": "<repo_owner>",
|
|
"fork_of": "<name_of_fork_parent>",
|
|
"enable_downloads": "<bool>",
|
|
"enable_locking": "<bool>",
|
|
"enable_statistics": "<bool>",
|
|
},
|
|
...
|
|
]
|
|
error: null
|
|
|
|
|
|
get_repo_changeset
|
|
------------------
|
|
|
|
.. py:function:: get_repo_changeset(apiuser, repoid, revision, details=<Optional:'basic'>)
|
|
|
|
Returns information about a changeset.
|
|
|
|
Additionally parameters define the amount of details returned by
|
|
this function.
|
|
|
|
This command can only be run using an |authtoken| with admin rights,
|
|
or users with at least read rights to the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The repository name or repository id
|
|
:type repoid: str or int
|
|
:param revision: revision for which listing should be done
|
|
:type revision: str
|
|
:param details: details can be 'basic|extended|full' full gives diff
|
|
info details like the diff itself, and number of changed files etc.
|
|
:type details: Optional(str)
|
|
|
|
|
|
get_repo_changesets
|
|
-------------------
|
|
|
|
.. py:function:: get_repo_changesets(apiuser, repoid, start_rev, limit, details=<Optional:'basic'>)
|
|
|
|
Returns a set of changesets limited by the number of commits starting
|
|
from the `start_rev` option.
|
|
|
|
Additional parameters define the amount of details returned by this
|
|
function.
|
|
|
|
This command can only be run using an |authtoken| with admin rights,
|
|
or users with at least read rights to |repos|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param start_rev: The starting revision from where to get changesets.
|
|
:type start_rev: str
|
|
:param limit: Limit the number of changesets to this amount
|
|
:type limit: str or int
|
|
:param details: Set the level of detail returned. Valid option are:
|
|
``basic``, ``extended`` and ``full``.
|
|
:type details: Optional(str)
|
|
|
|
.. note::
|
|
|
|
Setting the parameter `details` to the value ``full`` is extensive
|
|
and returns details like the diff itself, and the number
|
|
of changed files.
|
|
|
|
|
|
get_repo_nodes
|
|
--------------
|
|
|
|
.. py:function:: get_repo_nodes(apiuser, repoid, revision, root_path, ret_type=<Optional:'all'>, details=<Optional:'basic'>)
|
|
|
|
Returns a list of nodes and children in a flat list for a given
|
|
path at given revision.
|
|
|
|
It's possible to specify ret_type to show only `files` or `dirs`.
|
|
|
|
This command can only be run using an |authtoken| with admin rights,
|
|
or users with at least read rights to |repos|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: The repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param revision: The revision for which listing should be done.
|
|
:type revision: str
|
|
:param root_path: The path from which to start displaying.
|
|
:type root_path: str
|
|
:param ret_type: Set the return type. Valid options are
|
|
``all`` (default), ``files`` and ``dirs``.
|
|
:type ret_type: Optional(str)
|
|
:param details: Returns extended information about nodes, such as
|
|
md5, binary, and or content. The valid options are ``basic`` and
|
|
``full``.
|
|
:type details: Optional(str)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: [
|
|
{
|
|
"name" : "<name>"
|
|
"type" : "<type>",
|
|
"binary": "<true|false>" (only in extended mode)
|
|
"md5" : "<md5 of file content>" (only in extended mode)
|
|
},
|
|
...
|
|
]
|
|
error: null
|
|
|
|
|
|
create_repo
|
|
-----------
|
|
|
|
.. py:function:: create_repo(apiuser, repo_name, repo_type, owner=<Optional:<OptionalAttr:apiuser>>, description=<Optional:''>, private=<Optional:False>, clone_uri=<Optional:None>, landing_rev=<Optional:'rev:tip'>, enable_statistics=<Optional:False>, enable_locking=<Optional:False>, enable_downloads=<Optional:False>, copy_permissions=<Optional:False>)
|
|
|
|
Creates a repository.
|
|
|
|
* If the repository name contains "/", all the required repository
|
|
groups will be created.
|
|
|
|
For example "foo/bar/baz" will create |repo| groups "foo" and "bar"
|
|
(with "foo" as parent). It will also create the "baz" repository
|
|
with "bar" as |repo| group.
|
|
|
|
This command can only be run using an |authtoken| with at least
|
|
write permissions to the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repo_name: Set the repository name.
|
|
:type repo_name: str
|
|
:param repo_type: Set the repository type; 'hg','git', or 'svn'.
|
|
:type repo_type: str
|
|
:param owner: user_id or username
|
|
:type owner: Optional(str)
|
|
:param description: Set the repository description.
|
|
:type description: Optional(str)
|
|
:param private:
|
|
:type private: bool
|
|
:param clone_uri:
|
|
:type clone_uri: str
|
|
:param landing_rev: <rev_type>:<rev>
|
|
:type landing_rev: str
|
|
:param enable_locking:
|
|
:type enable_locking: bool
|
|
:param enable_downloads:
|
|
:type enable_downloads: bool
|
|
:param enable_statistics:
|
|
:type enable_statistics: bool
|
|
:param copy_permissions: Copy permission from group in which the
|
|
repository is being created.
|
|
:type copy_permissions: bool
|
|
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg": "Created new repository `<reponame>`",
|
|
"success": true,
|
|
"task": "<celery task id or None if done sync>"
|
|
}
|
|
error: null
|
|
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
'failed to create repository `<repo_name>`
|
|
}
|
|
|
|
|
|
add_field_to_repo
|
|
-----------------
|
|
|
|
.. py:function:: add_field_to_repo(apiuser, repoid, key, label=<Optional:''>, description=<Optional:''>)
|
|
|
|
Adds an extra field to a repository.
|
|
|
|
This command can only be run using an |authtoken| with at least
|
|
write permissions to the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository id.
|
|
:type repoid: str or int
|
|
:param key: Create a unique field key for this repository.
|
|
:type key: str
|
|
:param label:
|
|
:type label: Optional(str)
|
|
:param description:
|
|
:type description: Optional(str)
|
|
|
|
|
|
remove_field_from_repo
|
|
----------------------
|
|
|
|
.. py:function:: remove_field_from_repo(apiuser, repoid, key)
|
|
|
|
Removes an extra field from a repository.
|
|
|
|
This command can only be run using an |authtoken| with at least
|
|
write permissions to the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param key: Set the unique field key for this repository.
|
|
:type key: str
|
|
|
|
|
|
update_repo
|
|
-----------
|
|
|
|
.. py:function:: update_repo(apiuser, repoid, name=<Optional:None>, owner=<Optional:<OptionalAttr:apiuser>>, group=<Optional:None>, fork_of=<Optional:None>, description=<Optional:''>, private=<Optional:False>, clone_uri=<Optional:None>, landing_rev=<Optional:'rev:tip'>, enable_statistics=<Optional:False>, enable_locking=<Optional:False>, enable_downloads=<Optional:False>, fields=<Optional:''>)
|
|
|
|
Updates a repository with the given information.
|
|
|
|
This command can only be run using an |authtoken| with at least
|
|
write permissions to the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param name: Update the |repo| name.
|
|
:type name: str
|
|
:param owner: Set the |repo| owner.
|
|
:type owner: str
|
|
:param group: Set the |repo| group the |repo| belongs to.
|
|
:type group: str
|
|
:param fork_of: Set the master |repo| name.
|
|
:type fork_of: str
|
|
:param description: Update the |repo| description.
|
|
:type description: str
|
|
:param private: Set the |repo| as private. (True | False)
|
|
:type private: bool
|
|
:param clone_uri: Update the |repo| clone URI.
|
|
:type clone_uri: str
|
|
:param landing_rev: Set the |repo| landing revision. Default is
|
|
``tip``.
|
|
:type landing_rev: str
|
|
:param enable_statistics: Enable statistics on the |repo|,
|
|
(True | False).
|
|
:type enable_statistics: bool
|
|
:param enable_locking: Enable |repo| locking.
|
|
:type enable_locking: bool
|
|
:param enable_downloads: Enable downloads from the |repo|,
|
|
(True | False).
|
|
:type enable_downloads: bool
|
|
:param fields: Add extra fields to the |repo|. Use the following
|
|
example format: ``field_key=field_val,field_key2=fieldval2``.
|
|
Escape ', ' with \,
|
|
:type fields: str
|
|
|
|
|
|
fork_repo
|
|
---------
|
|
|
|
.. py:function:: fork_repo(apiuser, repoid, fork_name, owner=<Optional:<OptionalAttr:apiuser>>, description=<Optional:''>, copy_permissions=<Optional:False>, private=<Optional:False>, landing_rev=<Optional:'rev:tip'>)
|
|
|
|
Creates a fork of the specified |repo|.
|
|
|
|
* If using |RCE| with Celery this will immediately return a success
|
|
message, even though the fork will be created asynchronously.
|
|
|
|
This command can only be run using an |authtoken| with fork
|
|
permissions on the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param fork_name: Set the fork name.
|
|
:type fork_name: str
|
|
:param owner: Set the fork owner.
|
|
:type owner: str
|
|
:param description: Set the fork descripton.
|
|
:type description: str
|
|
:param copy_permissions: Copy permissions from parent |repo|. The
|
|
default is False.
|
|
:type copy_permissions: bool
|
|
:param private: Make the fork private. The default is False.
|
|
:type private: bool
|
|
:param landing_rev: Set the landing revision. The default is tip.
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_for_response>
|
|
api_key : "<api_key>"
|
|
args: {
|
|
"repoid" : "<reponame or repo_id>",
|
|
"fork_name": "<forkname>",
|
|
"owner": "<username or user_id = Optional(=apiuser)>",
|
|
"description": "<description>",
|
|
"copy_permissions": "<bool>",
|
|
"private": "<bool>",
|
|
"landing_rev": "<landing_rev>"
|
|
}
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg": "Created fork of `<reponame>` as `<forkname>`",
|
|
"success": true,
|
|
"task": "<celery task id or None if done sync>"
|
|
}
|
|
error: null
|
|
|
|
|
|
delete_repo
|
|
-----------
|
|
|
|
.. py:function:: delete_repo(apiuser, repoid, forks=<Optional:''>)
|
|
|
|
Deletes a repository.
|
|
|
|
* When the `forks` parameter is set it's possible to detach or delete
|
|
forks of deleted repository.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param forks: Set to `detach` or `delete` forks from the |repo|.
|
|
:type forks: Optional(str)
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg": "Deleted repository `<reponame>`",
|
|
"success": true
|
|
}
|
|
error: null
|
|
|
|
|
|
comment_commit
|
|
--------------
|
|
|
|
.. py:function:: comment_commit(apiuser, repoid, commit_id, message, userid=<Optional:<OptionalAttr:apiuser>>, status=<Optional:None>)
|
|
|
|
Set a commit comment, and optionally change the status of the commit.
|
|
This command can be executed only using api_key belonging to user
|
|
with admin rights, or repository administrator.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param commit_id: Specify the commit_id for which to set a comment.
|
|
:type commit_id: str
|
|
:param message: The comment text.
|
|
:type message: str
|
|
:param userid: Set the user name of the comment creator.
|
|
:type userid: Optional(str or int)
|
|
:param status: status, one of 'not_reviewed', 'approved', 'rejected',
|
|
'under_review'
|
|
:type status: str
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"id" : <id_given_in_input>,
|
|
"result" : {
|
|
"msg": "Commented on commit `<commit_id>` for repository `<repoid>`",
|
|
"status_change": null or <status>,
|
|
"success": true
|
|
},
|
|
"error" : null
|
|
}
|
|
|
|
|
|
changeset_comment
|
|
-----------------
|
|
|
|
.. py:function:: changeset_comment(apiuser, repoid, revision, message, userid=<Optional:<OptionalAttr:apiuser>>, status=<Optional:None>)
|
|
|
|
.. deprecated:: 3.4.0
|
|
|
|
Please use method `comment_commit` instead.
|
|
|
|
|
|
Set a changeset comment, and optionally change the status of the
|
|
changeset.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param revision: Specify the revision for which to set a comment.
|
|
:type revision: str
|
|
:param message: The comment text.
|
|
:type message: str
|
|
:param userid: Set the user name of the comment creator.
|
|
:type userid: Optional(str or int)
|
|
:param status: Set the comment status. The following are valid options:
|
|
* not_reviewed
|
|
* approved
|
|
* rejected
|
|
* under_review
|
|
:type status: str
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: json
|
|
|
|
{
|
|
"id" : <id_given_in_input>,
|
|
"result" : {
|
|
"msg": "Commented on commit `<revision>` for repository `<repoid>`",
|
|
"status_change": null or <status>,
|
|
"success": true
|
|
},
|
|
"error" : null
|
|
}
|
|
|
|
|
|
grant_user_permission
|
|
---------------------
|
|
|
|
.. py:function:: grant_user_permission(apiuser, repoid, userid, perm)
|
|
|
|
Grant permissions for the specified user on the given repository,
|
|
or update existing permissions if found.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param userid: Set the user name.
|
|
:type userid: str
|
|
:param perm: Set the user permissions, using the following format
|
|
``(repository.(none|read|write|admin))``
|
|
:type perm: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "Granted perm: `<perm>` for user: `<username>` in repo: `<reponame>`",
|
|
"success": true
|
|
}
|
|
error: null
|
|
|
|
|
|
revoke_user_permission
|
|
----------------------
|
|
|
|
.. py:function:: revoke_user_permission(apiuser, repoid, userid)
|
|
|
|
Revoke permission for a user on the specified repository.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param userid: Set the user name of revoked user.
|
|
:type userid: str or int
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "Revoked perm for user: `<username>` in repo: `<reponame>`",
|
|
"success": true
|
|
}
|
|
error: null
|
|
|
|
|
|
grant_user_group_permission
|
|
---------------------------
|
|
|
|
.. py:function:: grant_user_group_permission(apiuser, repoid, usergroupid, perm)
|
|
|
|
Grant permission for a user group on the specified repository,
|
|
or update existing permissions.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param usergroupid: Specify the ID of the user group.
|
|
:type usergroupid: str or int
|
|
:param perm: Set the user group permissions using the following
|
|
format: (repository.(none|read|write|admin))
|
|
:type perm: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg" : "Granted perm: `<perm>` for group: `<usersgroupname>` in repo: `<reponame>`",
|
|
"success": true
|
|
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to edit permission for user group: `<usergroup>` in repo `<repo>`'
|
|
}
|
|
|
|
|
|
revoke_user_group_permission
|
|
----------------------------
|
|
|
|
.. py:function:: revoke_user_group_permission(apiuser, repoid, usergroupid)
|
|
|
|
Revoke the permissions of a user group on a given repository.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo|.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repoid: Set the repository name or repository ID.
|
|
:type repoid: str or int
|
|
:param usergroupid: Specify the user group ID.
|
|
:type usergroupid: str or int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "Revoked perm for group: `<usersgroupname>` in repo: `<reponame>`",
|
|
"success": true
|
|
}
|
|
error: null
|
|
|
|
|
|
get_repo_group
|
|
--------------
|
|
|
|
.. py:function:: get_repo_group(apiuser, repogroupid)
|
|
|
|
Return the specified |repo| group, along with permissions,
|
|
and repositories inside the group
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repogroupid: Specify the name of ID of the repository group.
|
|
:type repogroupid: str or int
|
|
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
{
|
|
"error": null,
|
|
"id": repo-group-id,
|
|
"result": {
|
|
"group_description": "repo group description",
|
|
"group_id": 14,
|
|
"group_name": "group name",
|
|
"members": [
|
|
{
|
|
"name": "super-admin-username",
|
|
"origin": "super-admin",
|
|
"permission": "group.admin",
|
|
"type": "user"
|
|
},
|
|
{
|
|
"name": "owner-name",
|
|
"origin": "owner",
|
|
"permission": "group.admin",
|
|
"type": "user"
|
|
},
|
|
{
|
|
"name": "user-group-name",
|
|
"origin": "permission",
|
|
"permission": "group.write",
|
|
"type": "user_group"
|
|
}
|
|
],
|
|
"owner": "owner-name",
|
|
"parent_group": null,
|
|
"repositories": [ repo-list ]
|
|
}
|
|
}
|
|
|
|
|
|
get_repo_groups
|
|
---------------
|
|
|
|
.. py:function:: get_repo_groups(apiuser)
|
|
|
|
Returns all repository groups.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
|
|
|
|
create_repo_group
|
|
-----------------
|
|
|
|
.. py:function:: create_repo_group(apiuser, group_name, description=<Optional:''>, owner=<Optional:<OptionalAttr:apiuser>>, copy_permissions=<Optional:False>)
|
|
|
|
Creates a repository group.
|
|
|
|
* If the repository group name contains "/", all the required repository
|
|
groups will be created.
|
|
|
|
For example "foo/bar/baz" will create |repo| groups "foo" and "bar"
|
|
(with "foo" as parent). It will also create the "baz" repository
|
|
with "bar" as |repo| group.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param group_name: Set the repository group name.
|
|
:type group_name: str
|
|
:param description: Set the |repo| group description.
|
|
:type description: str
|
|
:param owner: Set the |repo| group owner.
|
|
:type owner: str
|
|
:param copy_permissions:
|
|
:type copy_permissions:
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "Created new repo group `<repo_group_name>`"
|
|
"repo_group": <repogroup_object>
|
|
}
|
|
error : null
|
|
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
failed to create repo group `<repogroupid>`
|
|
}
|
|
|
|
|
|
update_repo_group
|
|
-----------------
|
|
|
|
.. py:function:: update_repo_group(apiuser, repogroupid, group_name=<Optional:''>, description=<Optional:''>, owner=<Optional:<OptionalAttr:apiuser>>, parent=<Optional:None>, enable_locking=<Optional:False>)
|
|
|
|
Updates repository group with the details given.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repogroupid: Set the ID of repository group.
|
|
:type repogroupid: str or int
|
|
:param group_name: Set the name of the |repo| group.
|
|
:type group_name: str
|
|
:param description: Set a description for the group.
|
|
:type description: str
|
|
:param owner: Set the |repo| group owner.
|
|
:type owner: str
|
|
:param parent: Set the |repo| group parent.
|
|
:type parent: str or int
|
|
:param enable_locking: Enable |repo| locking. The default is false.
|
|
:type enable_locking: bool
|
|
|
|
|
|
delete_repo_group
|
|
-----------------
|
|
|
|
.. py:function:: delete_repo_group(apiuser, repogroupid)
|
|
|
|
Deletes a |repo| group.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repogroupid: Set the name or ID of repository group to be
|
|
deleted.
|
|
:type repogroupid: str or int
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
'msg': 'deleted repo group ID:<repogroupid> <repogroupname>
|
|
'repo_group': null
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to delete repo group ID:<repogroupid> <repogroupname>"
|
|
}
|
|
|
|
|
|
grant_user_permission_to_repo_group
|
|
-----------------------------------
|
|
|
|
.. py:function:: grant_user_permission_to_repo_group(apiuser, repogroupid, userid, perm, apply_to_children=<Optional:'none'>)
|
|
|
|
Grant permission for a user on the given repository group, or update
|
|
existing permissions if found.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repogroupid: Set the name or ID of repository group.
|
|
:type repogroupid: str or int
|
|
:param userid: Set the user name.
|
|
:type userid: str
|
|
:param perm: (group.(none|read|write|admin))
|
|
:type perm: str
|
|
:param apply_to_children: 'none', 'repos', 'groups', 'all'
|
|
:type apply_to_children: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "Granted perm: `<perm>` (recursive:<apply_to_children>) for user: `<username>` in repo group: `<repo_group_name>`",
|
|
"success": true
|
|
}
|
|
error: null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to edit permission for user: `<userid>` in repo group: `<repo_group_name>`"
|
|
}
|
|
|
|
|
|
revoke_user_permission_from_repo_group
|
|
--------------------------------------
|
|
|
|
.. py:function:: revoke_user_permission_from_repo_group(apiuser, repogroupid, userid, apply_to_children=<Optional:'none'>)
|
|
|
|
Revoke permission for a user in a given repository group.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo| group.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repogroupid: Set the name or ID of the repository group.
|
|
:type repogroupid: str or int
|
|
:param userid: Set the user name to revoke.
|
|
:type userid: str
|
|
:param apply_to_children: 'none', 'repos', 'groups', 'all'
|
|
:type apply_to_children: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "Revoked perm (recursive:<apply_to_children>) for user: `<username>` in repo group: `<repo_group_name>`",
|
|
"success": true
|
|
}
|
|
error: null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to edit permission for user: `<userid>` in repo group: `<repo_group_name>`"
|
|
}
|
|
|
|
|
|
grant_user_group_permission_to_repo_group
|
|
-----------------------------------------
|
|
|
|
.. py:function:: grant_user_group_permission_to_repo_group(apiuser, repogroupid, usergroupid, perm, apply_to_children=<Optional:'none'>)
|
|
|
|
Grant permission for a user group on given repository group, or update
|
|
existing permissions if found.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo| group.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repogroupid: Set the name or id of repository group
|
|
:type repogroupid: str or int
|
|
:param usergroupid: id of usergroup
|
|
:type usergroupid: str or int
|
|
:param perm: (group.(none|read|write|admin))
|
|
:type perm: str
|
|
:param apply_to_children: 'none', 'repos', 'groups', 'all'
|
|
:type apply_to_children: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg" : "Granted perm: `<perm>` (recursive:<apply_to_children>) for user group: `<usersgroupname>` in repo group: `<repo_group_name>`",
|
|
"success": true
|
|
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to edit permission for user group: `<usergroup>` in repo group: `<repo_group_name>`"
|
|
}
|
|
|
|
|
|
revoke_user_group_permission_from_repo_group
|
|
--------------------------------------------
|
|
|
|
.. py:function:: revoke_user_group_permission_from_repo_group(apiuser, repogroupid, usergroupid, apply_to_children=<Optional:'none'>)
|
|
|
|
Revoke permission for user group on given repository.
|
|
|
|
This command can only be run using an |authtoken| with admin
|
|
permissions on the |repo| group.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param repogroupid: name or id of repository group
|
|
:type repogroupid: str or int
|
|
:param usergroupid:
|
|
:param apply_to_children: 'none', 'repos', 'groups', 'all'
|
|
:type apply_to_children: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result: {
|
|
"msg" : "Revoked perm (recursive:<apply_to_children>) for user group: `<usersgroupname>` in repo group: `<repo_group_name>`",
|
|
"success": true
|
|
}
|
|
error: null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to edit permission for user group: `<usergroup>` in repo group: `<repo_group_name>`"
|
|
}
|
|
|
|
|
|
get_gist
|
|
--------
|
|
|
|
.. py:function:: get_gist(apiuser, gistid, content=<Optional:False>)
|
|
|
|
Get the specified gist, based on the gist ID.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param gistid: Set the id of the private or public gist
|
|
:type gistid: str
|
|
:param content: Return the gist content. Default is false.
|
|
:type content: Optional(bool)
|
|
|
|
|
|
get_gists
|
|
---------
|
|
|
|
.. py:function:: get_gists(apiuser, userid=<Optional:<OptionalAttr:apiuser>>)
|
|
|
|
Get all gists for given user. If userid is empty returned gists
|
|
are for user who called the api
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param userid: user to get gists for
|
|
:type userid: Optional(str or int)
|
|
|
|
|
|
create_gist
|
|
-----------
|
|
|
|
.. py:function:: create_gist(apiuser, files, owner=<Optional:<OptionalAttr:apiuser>>, gist_type=<Optional:u'public'>, lifetime=<Optional:-1>, acl_level=<Optional:u'acl_public'>, description=<Optional:''>)
|
|
|
|
Creates a new Gist.
|
|
|
|
:param apiuser: This is filled automatically from the |authtoken|.
|
|
:type apiuser: AuthUser
|
|
:param files: files to be added to the gist. The data structure has
|
|
to match the following example::
|
|
|
|
{'filename': {'content':'...', 'lexer': null},
|
|
'filename2': {'content':'...', 'lexer': null}}
|
|
|
|
:type files: dict
|
|
:param owner: Set the gist owner, defaults to api method caller
|
|
:type owner: Optional(str or int)
|
|
:param gist_type: type of gist ``public`` or ``private``
|
|
:type gist_type: Optional(str)
|
|
:param lifetime: time in minutes of gist lifetime
|
|
:type lifetime: Optional(int)
|
|
:param acl_level: acl level for this gist, can be
|
|
``acl_public`` or ``acl_private`` If the value is set to
|
|
``acl_private`` only logged in users are able to access this gist.
|
|
If not set it defaults to ``acl_public``.
|
|
:type acl_level: Optional(str)
|
|
:param description: gist description
|
|
:type description: Optional(str)
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"msg": "created new gist",
|
|
"gist": {}
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to create gist"
|
|
}
|
|
|
|
|
|
delete_gist
|
|
-----------
|
|
|
|
.. py:function:: delete_gist(apiuser, gistid)
|
|
|
|
Deletes existing gist
|
|
|
|
:param apiuser: filled automatically from apikey
|
|
:type apiuser: AuthUser
|
|
:param gistid: id of gist to delete
|
|
:type gistid: str
|
|
|
|
Example output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : {
|
|
"deleted gist ID: <gist_id>",
|
|
"gist": null
|
|
}
|
|
error : null
|
|
|
|
Example error output:
|
|
|
|
.. code-block:: bash
|
|
|
|
id : <id_given_in_input>
|
|
result : null
|
|
error : {
|
|
"failed to delete gist ID:<gist_id>"
|
|
}
|
|
|