.. _repo-xtra: Repository Extra Fields ======================= Extra fields attached to a |repo| allow you to configure additional actions for |RCX|. To install and read more about |RCX|, see the :ref:`install-rcx` section. Enabling Extra Fields --------------------- To enable extra fields on |repos|, use the following steps: 1. Go to the :menuselection:`Admin --> Settings --> Visual` page. 2. Check the :guilabel:`Use repository extra fields` box. 3. Save your changes. Configuring Extra Fields ------------------------ To configure extra fields per repository, use the following steps: 1. Go to :menuselection:`Admin --> Repositories` and select :guilabel:`Edit` beside the |repo| to which you wish to add extra fields. 2. On the |repo| settings page, select the :guilabel:`Extra fields` tab. .. image:: ../images/extra-repo-fields.png Example Usage ------------- To use the extra fields in an extension, see the example below. For more information and examples, see the :ref:`extensions-hooks-ref` section. .. code-block:: python call = load_extension('http_notify.py') if call: url = 'http://default.url' # # possibly extract the URL from extra fields call = load_extension('extra_fields.py') if call: repo_extra_fields = call(**kwargs) # now update if we have extra fields, they have precedence # this way users can store any configuration inside the database per # repo for key, data in repo_extra_fields.items(): kwargs[key] = data['field_value'] # an endpoint url data will be sent to, fetched from extra fields # if exists, or fallback to default kwargs['URL'] = kwargs.pop('webhook_url', None) or url # fetch pushed commits, from commit_ids list call = load_extension('extract_commits.py') extracted_commits = {} if call: extracted_commits = call(**kwargs) # store the commits for the next call chain kwargs['COMMITS'] = extracted_commits # set additional keys and values to be sent via POST to given URL kwargs['caller_type'] = 'rhodecode' kwargs['date'] = time.time() # import time before call(**kwargs)