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|.