public static function newRevisionFromConduitWithDiff(array $fields, DifferentialDiff $diff, $user_phid) { $revision = new DifferentialRevision(); $revision->setPHID($revision->generatePHID()); $revision->setAuthorPHID($user_phid); $revision->setStatus(DifferentialRevisionStatus::NEEDS_REVIEW); $editor = new DifferentialRevisionEditor($revision, $user_phid); $editor->copyFieldsFromConduit($fields); $editor->addDiff($diff, null); $editor->save(); // Tasks can only be updated after revision has been saved to the // database. Currently tasks are updated only when a revision is created. // UI must be used to modify tasks after creating one. $editor->updateTasks(); return $revision; }