Homec4science

Synchronize review request state to Asana

Authored by epriestley <git@epriestley.com> on Jun 26 2013, 01:33.

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

Committed
epriestley <git@epriestley.com>Jun 26 2013, 01:33
Pushed
aubortJan 31 2017, 17:16
Parents
rPH5a6044dbaa09: Initial Asana sync for Differential
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH302da70e7218: Synchronize review request state to Asana (authored by epriestley <git@epriestley.com>).Jun 26 2013, 01:33