Page MenuHomePhabricator

Dispatch Phabricator Integration
Closed, DeclinedPublic

Description

Dispatch has a plugin system: https://github.com/Netflix/dispatch/tree/master/src/dispatch/plugins

I found no plugin for Phabricator, but there is a plugin for Jira that is like to be similar in high level functionality (creating tasks, commenting, etc.): https://github.com/Netflix/dispatch/tree/master/src/dispatch/plugins/dispatch_jira The amount of code doesn't look intimidating.

Phabricator already has a Python 3 client: https://github.com/disqus/python-phabricator which is in use at Wikimedia installation, for example, to automate RAID failures: https://phabricator.wikimedia.org/source/operations-puppet/browse/production/modules/icinga/files/raid_handler.py

All points that joining the puzzle pieces shouldn't be too hard- but we (I?) don't have much experience with dispatch development, so we should also, at the same time, try to document how a plugin is created and how dispatch works internally.

Event Timeline

herron triaged this task as Medium priority.Jul 18 2022, 2:22 PM
herron created this task.

Claimed as discussed on Observability Team meeting.

The plugins can implement one or more interfaces, the one we probably want for Phabricator is probably the "ticket" one, however, that seems to be in early development/not stable yet:

This interface is not stable and will need to be refactored or generalized. Please file an issue for guidance if you are trying to extend ticket creation

→ From https://github.com/Netflix/dispatch/blob/master/docs/contributing/plugins/interfaces.md#ticketn

On the good news, it only has 2 methods: create and update (which is what the Jira plugin does).

jcrespo subscribed.

Not working on this at the moment, handed over to observability.

BCornwall subscribed.

As Dispatch has been rejected as WMF's solution and is tasked for decommision (T344937), I'm closing this.