Homec4science

Initial Asana sync for Differential

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

Description

Initial Asana sync for Differential

Summary:
Ref T2852. This is highly incomplete but seems structurally sound. Some additional context is available in the Google doc.

  • Add a workspace ID configuration. Without it, nothing else activates.
  • Add a worker which reacts to feed stories.
  • Feed stories about things which aren't Differential objects are ignored.
  • We load the revision, or fail permanently if we can't.
  • We get all the related user PHIDs (author, reviewers, CCs).
  • We check if any of them have linked Asana accounts, or fail permanently if they don't.
  • We check for an "ASANATASK" edge from the revision.
    • If we do not find one, we create a new task.
    • If we do find one, we load the task.
      • If we succeed, we check the chronological key of the most recent synchronized feed story ("cursor").
        • If this story is the same or newer, we update the task to synchronize it to the current state of the revision.
      • If we fail to load the task, we fail permanently ("asana task has been deleted").
  • We then publish the actual story text to the task.

Not in yet:

  • Updating followers requires separate API calls which we don't do yet.
  • No subtasks yet.
  • No sync of open/closed state.

Test Plan: {F47546}

Reviewers: btrahan

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2852

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

Details

Committed
epriestley <git@epriestley.com>Jun 26 2013, 01:33
Pushed
aubortJan 31 2017, 17:16
Parents
rPH97dc48485474: Fix issue where https is not honoured when loading disqus api
Branches
Unknown
Tags
Unknown

Event Timeline

epriestley <git@epriestley.com> committed rPH5a6044dbaa09: Initial Asana sync for Differential (authored by epriestley <git@epriestley.com>).Jun 26 2013, 01:33