##// END OF EJS Templates
api: add backward compatible info required for rhodecode-index.
api: add backward compatible info required for rhodecode-index.

File last commit:

r552:9a0f45b0 default
r1156:fbf9ca83 default
Show More
hooks.rst
86 lines | 3.1 KiB | text/x-rst | RstLexer

Hooks

Within |RCM| there are two types of supported hooks.

  • Internal built-in hooks: The internal |hg| or |git| hooks are triggered by different VCS operations, like push, pull, or clone and are non-configurable, but you can add your own VCS hooks, see :ref:`custom-hooks`.
  • User defined hooks: User defined hooks centre around the lifecycle of certain actions such are |repo| creation, user creation etc. The actions these hooks trigger can be rejected based on the API permissions of the user calling them.

Those custom hooks can be called using |RCT|, see :ref:`rc-tools`. To create a custom hook, see the :ref:`event-listener` section.

Making your Extension listen for Events

To create a hook to work with a plugin or extension, you need configure a listener in the :file:`/home/{user}/{instance-id}/rcextensions/__init__.py` file, and use the load_extension method.

Use the following example to create your extensions. In this example:

  • The hook is calling the ('my_post_push_extension.py') extension.
  • The hook is listening to |RCM| for pushes to |repos|.
  • This highlighted code is the hook, and configured in the __init__.py file.
  • It is inserted into the def _pushhook(*args, **kwargs) section, if it is not in the default __ini__.py file, use the below non-highlighted section to create it.

Once your plugin and hook are configured, restart your instance of |RCM| and your event listener will triggered as soon as a user pushes to a |repo|.