Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents


Official Transports

The following transports are officially provided by The Plugin People for use in JEMH:

HipChat
  • XMPP (not currently available for JIRA 7)

  • Summary

    Transports are channels that allow remote two way interaction with JIRA via JEMH.  JEMH provides all transports with per-event enablement as well as /wiki/spaces/JEMH/pages/2850840.  In addition, commands can be issued via Transports:

    Gliffy
    bordertrue
    nameTransports in context

    How Transports fit into JEMH

    Typically, Transports can be added to JEMH by installing an additional add-on in JIRA.  However as of JEMH 2.0.0, this is not the case for HipChat and SMS transports as they are now built-in.

    Each Transport provides some specific communication functionality.  It provides a default set of templates for the standard JIRA issue events in both text and HTML format, including subject content if appropriate (like for example in the standard Email Transport).  When a user configures a Project Mapping, the Transport provides these default templates to JEMH as needed.

    JEMH provides the configuration interface for each Transport, as well as event enablement and template selection via the Event Listener's Transport tab.

    JEMH also collects the CommandSet's that each Transport provides.  JEMH provides a few basic issue operations (watch/label/set priority) that will be expanded over time, including /help that generates a full list of all Commands grouped by their contributing CommandSet.  Whilst Transports can contribute CommandSets, its not required - a Transport has access to all pre-existing commands.

    Gliffy
    bordertrue
    size600
    nameThe Big Picture

    Transport Features

    A Transport that is added via an add-on must store its configuration locally, usually through the use of the Active Objects API.  A configuration is made up of Keys and Values, and are passed to JEMH via public DTO objects provided through the public JEMH API.  Currently support is not typed, all values are passed as simple text.  Transports are required to implement a validate method for configuration, and also to send a testMessage to verify connectivity.

    Transport Disablement

    Disabling a Transport add-on through the JIRA Add-ons section will cause it to disappear from JEMH user interface.  The disabled Transport will not receive notifications and should not retrieve from its related service.


    Templates

    Transports must contribute a set of templates that are appropriate for that Transport, for example, email templates are not appropriate for SMS, and vice versa, a Transport can expose text and html components, subjects too in future.  The Templates exposed by Transport add-ons are considered defaults, much in the same way the JEMH uses JIRA default templates.

    When installed, the TemplateSet IssueEvent user interface expands from just offering named events to offering the additional selection of the Transport (top right in the diagram below).  To help manage multiple custom TemplateSets for different transports, the displayed list can be dynamically filtered:Image Removed

    Image Added

    The contributing Transport add-on defines what content is required, and will cause the enablement of Subject, HTML and TEXT content for edit via the TemplateSet UI.

    Deleting a Transport TemplateSet will not be possible whilst it is referred by a Transport.





    Note

    The customisation of templates is not required, it is optional!



    Configuring Transports

    For information on configuring specific JEMH Transports, see the related wiki page:

    HipChatXMPP

    Associating a Project Mapping with a Transport Configuration

    Project Mappings are used to associate events occurring in a target project with Transports.  Transports can be used by multiple Project Mappings.  In order for a Transport to work, a Project Mapping must be attached to it and enabled for use with the Transport.

    For the purpose of this wiki guide, you will be shown how to link a project mapping to the HipChat Transport, although the process should be the same for any other.

    If you have not created a Project Mapping already, create one on the Email Transport screen, or click "New Project Mapping" under your Transport of choice.  You should see the Project Mapping edit screen:

    Image Removed
    Image Added

    Unless you wish to configure the mapping for email communication now (see this guide for more information), just enter your target project key(s) and press Submitto save.  You should now see a mapping under your Transport:

    Image Removed
    Image Added

    At this point, we need to enable the target Transport for use with this mapping, and select the events that this Transport will notify for.  To do this, make sure you are on your chosen Transports page, and click edit Image Modified.  You will then be taken to a screen where these changes can be made.  Using the HipChat Transport in our example, it looks like this:

    Image Removed
    Image Added

    Select the Transport configuration that you want to associate with this Project Mapping.  Then, select a template for the events that you want the Transport to notify for:

    Image Removed
    Image Added

    After clicking submit, the Transport configuration will be associated with the Project Mapping.

    Tip
    title

    Configuration Checkist

    • Transport configuration is created and modified

    • A Project Mapping for the Project that events are to be broadcast from was created

    • Project Mapping was configured to use the Transport Configuration, and specific JIRA events have been selected by choosing a template for each event

    Testing Transport configuration

    Create an issue in the project specified in your project mapping:

    Image Removed
    Image Added

    The Transport will receive the event and render the content using the applicable template and broadcast.  In this case, HTML:

    Image Removed
    Image Added


    Sending commands via Transports

    Commands are different to directives which you may be familiar with.  While directives are supplied in an email body that is sent to JEMH for processing, commands are not part of the issue creation process.  Their purpose is to allow users to interact with issues remotely.

    Gliffy
    bordertrue
    nameCommands in context

    Testing Commands

    With the Transport configured, now is the time to lookup commands.  The bundled Command Set in JEMH includes /help that is useful for listing all known commands, grouped by the contributing Command Set, /help command can also be used to bring up specific command help.

    Image Removed
    Image Added

    Bundled Commands

    • priority  example:  priority ABC-123 blocker

    • watch example: watch ABC-123

    • unwatch example: unwatch ABC-123

    • label example: label ABC-123 this that theother

    New additional Commands?

    These can be deployed as via new plugins, potentially even along with new Transport implementations.

    How Does Security Work?

    This is going to be transport specific.  The example, HipChat, uses the registered users email address to correlate with a JIRA user, if they aren't the same, then JEMH/JIRA will fail various permission checks.  Future Features could allow only a subset of users to interact via Transports.

    Filter by label (Content by label)
    showLabelsfalse
    max5
    spacesJEMH
    showSpacefalse
    sortmodified
    reversetrue
    typepage
    cqllabel in ( "transport" , "notifcations" , "notification" ) and space = "JEMH" and type = "page"
    labelsevent listener jemh issue notification