HomePhabricator

Implement child/descendant query rules in Projects

Description

Implement child/descendant query rules in Projects

Summary:
Ref T10010. This adds infrastructure for querying projects by type, depth, parent and ancestor.

I needed to revise the "extended policy check" cycle detection rules. When, e.g., querying a grandchild, they incorrectly detected a cycle because both the child and grandchild needed to check the policy of the grandparent.

Instead, simplify it to just do a basic runaway calldepth check. There are many other safety mechanisms to make it so this can't ever occur.

(Cycle detection does have existing test coverage, and those tests still pass, it just takes a little longer to detect the cycle internally.)

There is still no way to create subprojects in the UI.

Test Plan: Added and executed unit tests.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10010

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

Details

Provenance
epriestleyAuthored on
epriestleyPushed on Dec 23 2015, 10:38 PM
Reviewer
chad
Differential Revision
D14862: Implement child/descendant query rules in Projects
Parents
rP3068639ccffc: Implement query and policy rules for subprojects
Branches
Unknown
Tags
Unknown
Tasks
T10010: Implement Subprojects
Build Status
Buildable 9758
Build 11722: Run Core Tests