django-helpdesk icon indicating copy to clipboard operation
django-helpdesk copied to clipboard

Issue tracker integration support

Open Kage opened this issue 6 years ago • 2 comments

I would like to be able to integrate Django Helpdesk with an issue tracker in order to auto-generate incidents/tasks and correspond from within that issue tracker. The best way to do this would be to add bi-directional integration hook support where you can define the issue tracker API endpoint Django Helpdesk hits (and how it should format the data), and an API endpoint on Django Helpdesk that can take data as provided by the issue tracker.

For example: I would like to integrate Phabricator Maniphest tasks into Django Helpdesk (similar to how Sentry does it here). I'd like to take it further such that it not only generates Maniphest tasks, but also allows for bi-directional communication within that task (updates to the Django ticket are reflected in the associated Maniphest task and vice-versa).

To do this, I would tell Django Helpdesk to connect to a Phabricator Conduit endpoint to create Maniphest tasks, and also configure a Phabricator Herald event to send Phabricator events to Django Helpdesk. Phabricator uses PHID identifiers, so Django Helpdesk would need to store an integration's task/issue identifier in order to retain proper correlation.

So.. how could I begin? I took a brief look at the Django Helpdesk code but didn't find anything that exists to support this, so some sort of integration framework needs defined first. To support specific integrations, I suppose a "translation" config would be simplest (e.g. integration "Foo" sends JSON issues[0].user.email which is provided by Django.email, and Django will sent its Django.email as JSON payload issue.user.email to the "Foo" API endpoint of "/blah/api").

Thoughts or suggestions?

Kage avatar May 15 '18 13:05 Kage

django-helpdesk used to have an API but it was home-grown and not a great solution. We removed it from recent versions of helpdesk. I believe the plan is to add django-rest-framework (http://www.django-rest-framework.org/) support for a standard JSON API but this work hasn't been completed yet.

gwasser avatar May 15 '18 16:05 gwasser

See #198

gwasser avatar May 15 '18 16:05 gwasser