Finding lost Phabricator pings
2024-08-30 13:50:55 +0200 +0200
Some sketches of a project I've had in mind that I am thinking of with the name mnemopynge (mnemo = memory, pynge… well, like ping-y), i.e. the goddess of remembering forgotten Phabricator pings.
The problem: someone (maybe you) has @
mentioned someone else, with the once bright hope that the receiver of the ping will respond with comments, feedback, ideas, inspiration, questions, criticism, poems–anything, really, that might help nudge a task forward.
Sadly, those pings can easily disappear in the noise of a busy inbox. What would be cool is a way to surface missed pings to interested people, so that they can catch up and respond.
A solution: a Toolforge application that accepts a Phabricator username. The application does an API query to find all open, subscribed tasks for the user; then it fetches the last comment of each task, and checks to see if the username exists as an @
mention. We'd also have a JSON page on Wikitech somewhere where users could sign up to receive a weekly email of tasks where their username exists as an @
mention in the last comment of an open task.
Some implementation detail problems:
- Making a few thousand API queries per user isn't great (I'm subscribed to >1000 tasks; you have to make at least one query to get the comments for each task, and then you also need to make some more queries to convert the comment to Markdown markup or otherwise lookup the phab ID of the username to search for in the comment text)
- Will need some kind of caching / invalidation implementation to handle the large number of queries
- How to mark false positives? I guess by closing the task or otherwise commenting on the task.