HomePhabricator

Add "parent" and "ancestor" information to the project.search API

Description

Add "parent" and "ancestor" information to the project.search API

Summary:
Ref T12074.

  • Adds a new "parent" property on main results. This shows an abbreviated version of the project's parent, or null if the project is a root project.
  • Adds a new "ancestor" attachment to pull the entire ancestor list.
  • Adds a new "depth" property on main results.
  • You can use "parent" or "depth" to tell if a project is a subproject or not.

These attempt to balance convenience, power, and performance: the full ancestor list can be big so I made it an attachment, but the other stuff isn't too big and is cheap and seems reasonable to always include.

Test Plan:
In API results:

  • Saw null parent (root projects) and non-null parent (subprojects/milestones).
  • Used "ancestors" attchment, got full list of ancestors.
  • Saw appropriate "depth" values.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T12074

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