HomePhorge

Synchronize review request state to Asana

Description

Synchronize review request state to Asana

Summary:
Ref T2852. Depends on D6302. This now creates, destroys, and synchronizes subtasks.

  • After finishing the parent task stuff, we pull a list of all known subtasks.
  • We load all those subtasks.
  • If we fail to load any, we delete their objects and edges on the Phabricator side.
  • Of the remaining subtasks, we find subtasks for users who aren't related to the object any more and delete them in Asana and locally (for example, if alincoln is removed as a reviewer, we delete his subtask).
  • For all the related users, we either synchronize their existing task or create a new one for them.
  • Then we write edges for any new tasks we added.

This doesn't handle a few weird edge cases in any specific way:

  • If a subtask is moved under a different parent, we ignore it.
  • If a new subtask is created that we don't know about, we ignore it.
  • If a subtask we know about is deleted, we just respawn it. This is consistent with "DON'T EDIT THESE". You can force sync to stop by deleting the parent.

Addititionally:

  • Make the "don't edit" warning more compelling and visceral.

Test Plan:

  • Kind of ran it a bit.
  • There are like 3,000 edge cases here so this is hard to test exhaustively.
  • Forced a few of the edge cases to happen.
  • Nothing seems immediately broken in an obvious way?

{F47551}

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2852

Differential Revision: https://secure.phabricator.com/D6303

Details

Provenance
epriestleyAuthored on Jun 25 2013, 4:33 PM
themackabuPushed on Mar 25 2025, 8:07 PM
Parents
rP5a6044dbaa09: Initial Asana sync for Differential
Branches
Unknown
Tags
Unknown

Event Timeline