Page MenuHomePhabricator

Create conduit method to query the feed and return records with relevant details populated instead of just a bunch of phids
Closed, DeclinedPublic

Description

Currently wikibugs has to do a lot of separate api queries in order to assemble the data needed to provide irc notifications.

The current situation puts a whole lot of load on phabricator and it makes wikibugs code overly complicated. This won't scale forever.

Additionally, there aren't any differential methods to get transaction data the way we are doing for maniphest transactions, so it's not possible for wikibugs to report on differential changes.

I want to build a custom api method that returns the feed with transaction details populated, this way a single api call will return all of the data that wikibugs needs to do it's thing.

Event Timeline

mmodell raised the priority of this task from to Needs Triage.
mmodell updated the task description. (Show Details)
mmodell subscribed.
mmodell lowered the priority of this task from High to Medium.Feb 15 2016, 3:23 PM
mmodell changed the task status from Open to Stalled.May 12 2017, 1:00 AM
mmodell added a project: Wikibugs.

there aren't any differential methods to get transaction data the way we are doing for maniphest transactions

https://secure.phabricator.com/D18466 and related changes in https://secure.phabricator.com/T5873#231369 might set the basics for this if I get it right (not sure)

@JAufrecht : Perhaps eventually phlogiston could pull data via conduit instead of relying on nightly db dumps?

In the long run, yes, either pulling data from conduit or being replaced by internal reporting features. In the short term, I have heard that Conduit is not ready for use?

"Conduit" is just the Phab app name for the code that manages the API. It is/has been ready for use.

mmodell changed the task status from Stalled to Open.Sep 13 2017, 9:52 PM

I plan to work on this soon, hopefully sometime this quarter.

mmodell changed the task status from Open to Stalled.Nov 27 2017, 5:52 PM
mmodell removed mmodell as the assignee of this task.
mmodell lowered the priority of this task from Medium to Low.
Aklapper changed the task status from Stalled to Open.Jun 1 2020, 10:13 AM

I don't see who or what (task?) exactly this task is stalled on ("If a report is waiting for further input (e.g. from its reporter or a third party) and can currently not be acted on"). Hence resetting task status.

Aklapper changed the task status from Open to Stalled.Jul 13 2023, 12:10 PM
Aklapper edited subscribers, added: valhallasw; removed: ksmith, JAufrecht, RobLa-WMF.

CC'ing @valhallasw as wikibugs' T1175: Get rid of screen scraping in Wikibugs is listed as a parent task (and probably intended to be main consumer?).

To get the change history of this very task, I currently can

  • echo '{"filterPHIDs":["PHID-TASK-k5kvgx5ch2dg3ez4jcbl"]}' | /var/www/html/phorge/arcanist/bin/arc call-conduit --conduit-uri https://phabricator.wikimedia.org --conduit-token "api-xxxxxxxxx" feed.query --
  • echo '{"ids":["123417"]}' | /var/www/html/phorge/arcanist/bin/arc call-conduit --conduit-uri https://phabricator.wikimedia.org --conduit-token "api-xxxxxxxx" maniphest.gettasktransactions --

Could someone please elaborate what exactly is wanted / missing here? TIA!

Wikibugs uses the task page html for

https://github.com/wikimedia/labs-tools-wikibugs2/blob/master/wikibugs.py#L140

I think the other issue this aimed to address was Wikibugs needing to call maniphest.info for every change (rather than feed.query just containing the relevant details). The "this won't scale forever" seems to not have been a major issue, though :-)

It's possible that the underlying Conduit APIs have gained the required functionality in the last 10 years. At the same time, I don't have a particular interest in resolving T1175 given that the screen scraping worked pretty reliably over the years, nothing is going to change in Phabricator and it's all going over to GitLab at some point.

Thanks *a lot* for elaborating! In that case I'm going to decline this task for the time being. Please reopen if a Wikimedia use case shows up but if there isn't this should go to upstream instead.

I stumbled upon rPHAB586aaa547ade5bf97fa02e2c8e11511b0387b737 which refers to this task.
I do not know if that custom downstream code change ("add html+data for feed.query conduit api") in our Phabricator instance is still needed or not.
Help welcome.