Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / audit / management / PhabricatorAuditUpdateOwnersManagementWorkflow.php
blob883bcd406531d6e5571e1ffba5e63d796a9f1221
1 <?php
3 final class PhabricatorAuditUpdateOwnersManagementWorkflow
4 extends PhabricatorAuditManagementWorkflow {
6 protected function didConstruct() {
7 $this
8 ->setName('update-owners')
9 ->setExamples('**update-owners** ...')
10 ->setSynopsis(pht('Update package relationships for commits.'))
11 ->setArguments(
12 array_merge(
13 $this->getCommitConstraintArguments(),
14 array()));
17 public function execute(PhutilArgumentParser $args) {
18 $viewer = $this->getViewer();
19 $objects = $this->loadCommitsWithConstraints($args);
21 foreach ($objects as $object) {
22 $commits = $this->loadCommitsForConstraintObject($object);
24 foreach ($commits as $commit) {
25 $repository = $commit->getRepository();
27 $affected_paths = PhabricatorOwnerPathQuery::loadAffectedPaths(
28 $repository,
29 $commit,
30 $viewer);
32 $affected_packages = PhabricatorOwnersPackage::loadAffectedPackages(
33 $repository,
34 $affected_paths);
36 $monograms = mpull($affected_packages, 'getMonogram');
37 if ($monograms) {
38 $monograms = implode(', ', $monograms);
39 } else {
40 $monograms = pht('none');
43 echo tsprintf(
44 "%s\n",
45 pht(
46 'Updating "%s" (%s)...',
47 $commit->getDisplayName(),
48 $monograms));
50 $commit->writeOwnersEdges(mpull($affected_packages, 'getPHID'));