.. index::
integration; ticket system plugin
ticket system plugin
.. _ticket-systems:
======================================================
Ticket system plugins: Creating a ticket automatically
======================================================
.. index::
see: case; ticket
see: issue; ticket
It is possible to automatically create a :index:`ticket` (aka. issue, case)
from an Argus incident with a pre-filled title and body.
How to write a plugin for a desired ticket system is detailed in
:ref:`writing-ticket-system-plugins`.
Existing ticket system plugins
==============================
Ticket plugins maintained by Argus developers
---------------------------------------------
Request Tracker
~~~~~~~~~~~~~~~
| Class: ``argus_ticket_rt.RequestTrackerPlugin``
| Source: https://github.com/Uninett/argus_ticket_rt
| PyPI: `argus-ticket-rt `_
Jira
~~~~
| Class: ``argus_ticket_jira.JiraPlugin``
| Source: https://github.com/Uninett/argus_ticket_jira
| PyPI: `argus-ticket-jira `_
Github
~~~~~~
| Class: ``argus_ticket_github.GithubPlugin``
| Source: https://github.com/Uninett/argus_ticket_github
| PyPI: `argus-ticket-github `_
Gitlab
~~~~~~
| Class: ``argus_ticket_gitlab.GitlabPlugin``
| Source: https://github.com/Uninett/argus_ticket_gitlab
| PyPI: `argus-ticket-gitlab `_
Other ticket plugins
--------------------
None known to us at this time.
.. include:: ../_note.rst
.. _ticket-systems-settings:
Configuring a ticket plugin
===========================
To enable this feature information needs to be added to the
:ref:`site-specific-settings`.
The settings which are relevant for the integration with the different ticket
systems are ``TICKET_PLUGIN``, ``TICKET_ENDPOINT``,
``TICKET_AUTHENTICATION_SECRET`` and ``TICKET_INFORMATION``.
``TICKET_PLUGIN`` is the fully qualified name of the ticket plugin Python
class. See the "Class" field in the list of plugins above for examples.
``TICKET_ENDPOINT`` is the link to the ticket system website the ticket should be
created at.
``TICKET_AUTHENTICATION_SECRET`` is a dictionary containing all the relevant
information that is needed to authenticate with the ticket system's API. It is
both possible to use token-based authentication as well as username- and
password-based authentication.
``TICKET_INFORMATION`` contains any additional information that is needed to
create a ticket, for example the specific repository or queue the ticket should
be created in and settings for custom fields.
To enable an integration with a ticket plugin these settings MUST be added
to Argus.
The specifics for each ticket system plugin is the documentation of the
specific plugin.
Writing your own ticket system plugin
=====================================
.. toctree::
writing-ticket-system-plugins